我試圖將按鈕的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"
這是連接按鈕clicked()信號的正確方法嗎?我發現我可以直接在Qt Designer中連接信號和插槽,但是如何準備並獲取代碼中的這些線程? 旁邊的問題:上面的代碼工作,但主窗口顯示大小錯誤。我如何確保它以合適的尺寸顯示?我應該用最小的高度/寬度限制來做到這一點嗎?
非常感謝!重新設置大小問題,在Qt Designer中設置最小大小有所幫助。我想也許有一種編程方式來確保主窗口的大小,以便它內部的所有小部件都可見。 – Sven 2012-01-06 00:11:42
Re QUiLoader,沒有具體的原因,除了它很簡單。對於'pyuic4'方法,我將不得不研究如何讓Eclipse/PyDev自動爲.ui文件啓動'pyuic4'。 – Sven 2012-01-06 00:20:11
@Sven。查看我更新的調整大小的答案:我很確定這是一個佈局問題。 – ekhumoro 2012-01-06 00:29:03