gpt4 book ai didi

python - 从插槽 PyQt 更改背景颜色

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:18 25 4
gpt4 key购买 nike

我希望能够从插槽更改我的应用程序的颜色。例如,如果用户在 qlabel 中输入了错误的数据,整个 QWidget 就会变成红色。

在方法 show() 之前更改代码中的颜色很容易,如下所示:

from PyQt5 import Qt
import sys

app = QtWidgets.QApplication(sys.argv)
window = QWidget()
p = window.palette()
p.setColor(window.backgroundRole(), QtCore.Qt.red)
window.setPalette(p)
window.show()
sys.exit(app.exec_())

但是如果我有这种结构,我不知道如何改变插槽中的颜色:

class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QDialog.__init__(self, parent)
uic.loadUi("file.ui", self)
self.sendButton.clicked.connect(self.change_color)

# what should be in change-color slot?
def change_color(self):
#.....?

if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())

我应该以某种方式在 slot 中调用 QWidget 的指针吗?

在这里实现适当功能的方法是什么?

最佳答案

类的实例是您传递给方法的第一个参数,在您的例子中是self,因此您必须执行以下操作:

def checks(self):
p = self.palette()
p.setColor(self.backgroundRole(), QtCore.Qt.red)
self.setPalette(p)

关于python - 从插槽 PyQt 更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45593358/

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