【发布时间】:2017-08-09 14:20:36
【问题描述】:
我希望能够从插槽更改我的应用程序的颜色。例如,如果用户在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_())
我应该以某种方式在插槽中调用 QWidget 的指针吗?
在这里实现正确功能的方法是什么?
【问题讨论】:
-
"我应该以某种方式调用插槽中 QWidget 的指针吗?"你当然应该。在 Python 中称为 self。