さて、ほとんどすべてのチュートリアル/理解可能な人間の言語で書かれたドキュメントは PyQt4 用です。しかし、PyQt5 は「スロットへの接続ボタン」全体の動作方法を変更しましたが、その方法はまだわかりません。
QtDesigner で簡単な GUI を作成し、QPushButton とラベルを作成しました。ボタンをクリックすると、ラベルのテキストが変更されます。QtDesigner の C++ では、この 2 つを簡単に接続できます。しかし、私はそれをすべてpythonで書かなければなりません。
pyuic5 の .ui ファイルを .py ファイルに変換します。Ui_MainWindow クラスで、次のように self.button を初期化する setupUi メソッドを確認できます。
self.testButton = QtWidgets.QPushButton(self.centralWidget)
self.testButton.setObjectName("newGame")
次に、メソッドの最後に、
QtCore.QMetaObject.connectSlotsByName(MainWindow)
と呼ばれていますが、正直なところ、それが何をしていて、どこに何を接続しているのかわかりません。
Main クラスでは、QMainWindow から継承して、次のメソッドを記述します。
@pyqtSlot(name='change')
def change_text(self):
self.ui.testLabel.setText("Button Clicked!")
ボタン信号をそのスロットに接続する方法がわかりません。pyqt4 では、button.clicked.connect(self.change_text) を実行して手動で設定できましたが、私が知ったように、PyQt5 はそのような単純な設定を廃止し、破棄しました。
お願いします、誰かそれを手伝ってくれませんか?