首页 > 解决方案 > 在选择另一个小部件时更改 PyQt5 中的背景

问题描述

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys

def foo():
    app = QApplication(sys.argv)
    window = QWidget()
    window.setStyleSheet("""
        background-color: green;
        """)
    btn1 = QPushButton('My_Button', window)
    btn1.setStyleSheet("""
            QPushButton{
                background-color:yellow;
            }
        """)
    btn1.setGeometry(25,25,50,50)
    window.resize(100,100)
    window.show()
    sys.exit(app.exec())
if __name__ == "__main__":
    foo()

我们如何更改主小部件(QWidget)的背景颜色。示例:- 当我们按下TAB时,My_Button 被选中,所以我想要的是当我们选择任何小部件时,它可以更改另一个小部件的内容(此处为背景)。

标签: pythonpython-3.xuser-interfacepyqt5qt5

解决方案


您可以创建一个继承自 QPushButton 的子类 My_Button,并覆盖其 focusInEvent 事件侦听器 - 在您的情况下,运行这些行来更改主小部件背景的颜色。然后,在您的应用程序中使用这个子类。


推荐阅读