gpt4 book ai didi

python - 透明框架内的透明小部件pyqt5

转载 作者:行者123 更新时间:2023-11-30 22:55:04 25 4
gpt4 key购买 nike

我在解决程序问题时遇到问题。当我创建一个包含其他一些小部件的透明小部件时,它们也变得透明,我不明白为什么。

from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt

class MainFrame(QtWidgets.QWidget):

def __init__(self, parent=None):
super(MainFrame, self).__init__(parent)

self.setWindowFlags(Qt.FramelessWindowHint)
self.setFixedSize(860, 560)

# Set the opacity
self.setWindowOpacity(1 - 50 / 100)

layout = QtWidgets.QHBoxLayout(self)

layout.addWidget(QtWidgets.QPushButton("TEST"))

在此示例代码中,小部件 QPushButton 将显示为透明,与标签和其他小部件相同。如何仅将透明度应用于我的类 MainFrame。

编辑:

这是我所拥有的(透明按钮和透明 QWidget): enter image description here这就是我需要的(没有透明按钮和透明 QWidget): enter image description here非常感谢。

最佳答案

我相信您正在寻找这个:

self.setAttribute(Qt.WA_TranslucentBackground)

根据您的示例改编的完整代码如下:

import sys
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt

class MainFrame(QtWidgets.QWidget):

def __init__(self, parent=None):
super(MainFrame, self).__init__(parent)

self.setWindowFlags(Qt.FramelessWindowHint)
self.setFixedSize(860, 560)

# Set the opacity
#self.setWindowOpacity(1 - 50 / 100)

layout = QtWidgets.QHBoxLayout(self)

layout.addWidget(QtWidgets.QPushButton("TEST"))

self.setAttribute(Qt.WA_TranslucentBackground)

if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
Frame = MainFrame(None)
Frame.show()
app.exec_()

,结果是这样的:

transparent QWidget

如果您只想获得一些透明度,您可能需要重写 paintEvent,如 this example 中所示。 .

关于python - 透明框架内的透明小部件pyqt5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com