2011-12-13 13 views
5

PythonからQt DesignerUIにスロットを接続するのは本当に苦労しています。 私はPySideに見つけることができるすべてのチュートリアルを進めてきた(例:http://zetcode.com/gui/pysidetutorial/eventsandsignals/PySideのQUiLoaderとUIファイルを使用して、実行時に動的にユーザーインターフェイスを作成する

そのを使用すると、コード内でGUIを設定するときには非常に簡単ですが、私たちは本当にのQt DesignerおよびUIファイルを使用したいと思います。

いくつかの他のスレッドがちょうど.ui.pyにファイルを変換するpyuicの使用を指しますが、その可能であれば私は本当に実行時にこれを実行したいと思います。

ここまでは私のコードです。 私はUIファイルでConnectconnectBtnを接続する方法を見当もつかない:

def initUI(self):  

    loader = QUiLoader() 
    file = QFile("designer_test.ui") 
    file.open(QFile.ReadOnly) 
    myWidget = loader.load(file, self) 
    #print(dir(myWidget)) 
    file.close() 

    layout = QtGui.QVBoxLayout() 
    layout.addWidget(myWidget) 
    self.setLayout(layout) 

    connectBtn = QtGui.QPushButton("Connect", self) 

    connectBtn.clicked.connect(self.connectClicked) 

    myWidget.setWindowTitle('Window') 
    myWidget.show() 

def connectClicked(self): 
    print("works") 

答えて

3

あなたはこのページを確認しました:Using a Designer UI File in Your Application

をそれは、C++のためですが、私はコンセプトは同じだと思いますあなたがPythonでやろうとしていること。

このページによれば、Uiファイルによって作成されたウィジェットを取得するには、findChild()を呼び出す必要があります。また、this question

0

私はこれで私を助けるために、このauto-connectorを作った...それを見てみてください。

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 – cpburnz

関連する問題