PyQt4のチュートリアル/人間言語で書かれた理解可能なドキュメントは、ほぼすべてです。しかし、PyQt5は、「スロットに接続する」ボタン全体がどのように機能するかを変更しましたが、それを行う方法はまだ分かりません。PyQt5:QPushButtonをスロットに接続するにはどうすればよいですか?
QtDesignerでクイックGUIを行いましたが、QPushButtonとラベルがあります。ボタンをクリックすると、ラベルのテキストが変更されます。 QtDesignerのC++では、2つを簡単に接続できます。しかし、私はすべてのpythonでそれを記述する必要があります。
pyuic5の.uiファイルを.pyファイルに変換します。そこでは、Ui_MainWindowクラスで、私は
QtCore.QMetaObject.connectSlotsByName(MainWindow)
は正直に言うと、呼ばれているが、この方法の最後で、その後、
self.testButton = QtWidgets.QPushButton(self.centralWidget)
self.testButton.setObjectName("newGame")
を次のようにself.buttonを初期化setupUi方法を、見ることができます私はそれが何をするのか、それがどこにつながるのか理解できません。メインクラスの
は、QMainWindowから継承する、私は次のような方法
@pyqtSlot(name='change')
def change_text(self):
self.ui.testLabel.setText("Button Clicked!")
を書いて、私はそのスロットにボタン信号を接続する方法を見つけ出すことはできません。 pyqt4では、button.clicked.connect(self.change_text)を使って手動で設定することができましたが、わかったように、PyQt5は廃止され、そのような単純な設定を破棄しました。
どうすればいいですか?
>あなたは「PyQt5全体が 『スロットに接続ボタンを』どのように動作変更」、それというアイデアを得たところ私にはわかりません完全に完全に間違っています。 私はそこから入手しました:http://pyqt.sourceforge.net/Docs/PyQt5/pyqt4_differences.html 段落:「古いスタイルの信号とスロット」を見てください。 "QObject.connect()はpyqt5に実装されていません"、そうです。 また、私はそれを実行しようとすると、私はそのようなことを実行する、私は "AttributeError:QPushButtonオブジェクトは、属性の接続を持っていない"取得:( –
待って!私は間違って何かを見つけた!私は前述のリンク(pyqt4_differences)と、eclipseがコード提案に「クリックされた」ことを表示しなかったという事実を示唆していました。私の悪い、私のすべての悪い、返信のおかげで、私は間違っていた:( –