ボタンのclick()信号を自分の関数に接続しようとしています。このボタンは、QT Designerで作成したウィジェットにあります。私はそうのようなQUiLoaderで.uiファイルを読み込む:Qtデザイナで定義されたシグナル/スロットを実装する方法
class MyWidget(QtGui.QMainWindow):
def __init__(self, *args):
QtGui.QMainWindow.__init__(self, *args)
loader = QtUiTools.QUiLoader()
file = QtCore.QFile("pyside_ui_qtdesigner_form_test.ui")
file.open(QtCore.QFile.ReadOnly)
self.myWidget = loader.load(file, self)
file.close()
self.setCentralWidget(self.myWidget)
btn = self.myWidget.findChild(QtGui.QPushButton, "HelloWorldButton")
btn.clicked.connect(self.slot1)
def slot1(self):
print "Received"
が、これは()シグナルをクリックしたボタンに接続するための正しい方法は何ですか?私は信号とスロットをQt Designerで直接結びつけることができますが、コード内でどのように準備してそのようなワイヤーアップをするのですか? サイド質問:上記のコードは機能しますが、メインウィンドウのサイズが間違っています。正しいサイズで表示されるようにするにはどうすればよいですか?高さ/幅の最小の制約でこれを行う必要がありますか?
ありがとうございます。 Qt Designerの最小サイズを設定することで、サイズの問題が解決しました。私はおそらくメインウィンドウがその中のすべてのウィジェットが見えるようにサイズが決められていることを保証するプログラム的な方法があると考えました。 – Sven
Re QUiLoader、具体的な理由はありませんが、それ以外は簡単です。 'pyuic4'アプローチについては、.uiファイルに対してEclipse/PyDevが自動的に' pyuic4'を起動させる方法を研究しなければなりません。 – Sven
@ Sven。サイズ変更に関する私の更新答えを見てください:私はそれがレイアウトの問題であると確信しています。 – ekhumoro