将窗口属性重置为默认pyqt5

道林·斯兰别科夫

我有一个小问题。通过使用以下代码,我可以使小部件的背景透明。

self.setwindowFlags(Qt.WA_TranslucentBackground)

应用此功能后,我想通过任何事件将其恢复为初始状态。帮我。

尼克

试试看:

import sys
from PyQt5 import QtWidgets, QtCore


class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Widget, self).__init__(parent)

        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

        self.widget = QtWidgets.QWidget(self)
        self.widget.setStyleSheet('.QWidget {background-color: blue;}')
        self.widget.setObjectName('widget')
        self.widget.setFixedSize(700, 500)

        close_button = QtWidgets.QPushButton('close window', clicked=self.close)

        self.change_button = QtWidgets.QPushButton('change StyleSheet')
        self.change_button.setCheckable(True)
        self.change_button.toggled.connect(self.button_state_func)   

        layout = QtWidgets.QGridLayout(self.widget)
        layout.addWidget(close_button)
        layout.addWidget(self.change_button)

    def button_state_func(self, state):
        if state:
            self.widget.setStyleSheet('QWidget#widget {background-color: transparent;}')
        else:
            self.widget.setStyleSheet('QWidget#widget {background-color: yellow;}')       
        

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章