スロットからアプリケーションの色を変更したいと考えています。たとえば、ユーザーが間違ったデータをqlabelに入力すると、QWidget全体が赤色に変わります。スロットのPyQtから背景色を変更する
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と呼ばれています。 – Trilarion