2014-02-10 42 views
0

因此,我退出了新的工作在Python中的用戶界面。我並沒有真正理解核心概念,我認爲這個簡單的問題將有助於翻轉燈開關。訪問由pyQt創建的QtGui對象

如下面的代碼片段所示,我導入了一個用Qt製作的ui文件。這個用戶界面上有一個按鈕。如何在該按鈕上進行點擊事件?我已經閱讀了關於如何編寫按鈕並使用它的教程。我明白那個。這是如何訪問對象並操作由ui文件創建的對象的問題。我真正想做的是看看如何在單擊按鈕時執行一個函數(或實例化一個類或其他)。那個函數就是我寫的那個函數。嬰兒的步驟,但。任何答案和闡述將不勝感激。

import sys 
from PyQt4 import QtGui, uic, QtCore 

class MyWindow(QtGui.QMainWindow): 
    def __init__(self): 
     super(MyWindow, self).__init__() 
     uic.loadUi('myWidget.ui', self) 
     self.show() 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    window = MyWindow() 

    sys.exit(app.exec_()) 

像我說的。非常簡單的問題,但我只是沒有真正掌握這裏的核心概念。謝謝。

+0

'uic.loadUi('myWidget.ui',self)'return anything? – M4rtini

+0

像在一個布爾值?我的印象是,該命令剛剛從你的UI文件初始化了你的界面 – m25

+0

它的確如此,並且從這裏的其他答案看起來它會返回一個持有該UI的所有對象的對象。 – M4rtini

回答

3
self.ui=uic.loadUi('curveViewer.ui', self) 
#where `your_pushbutton` is the button name specified in your .ui file: 
self.ui.your_pushbutton.clicked.connect(self.onBtnClicked) 

或者只是:

uic.loadUi('curveViewer.ui', self) 
self.your_pushbutton.clicked.connect(self.onBtnClicked) 

然後定義你的MyWindow類中的方法onBtnClicked

def onBtnClicked(): 
    print 'pushbutton clicked' 

看到New-style Signal and Slot Support

順便說一句,這是更好地去除self.show(),並使其:

window = MyWindow() 
window.show() 
+0

你應該添加'your_pushbutton'應該匹配ui文件中指定的對象名稱 –

+0

@three_pineapples我認爲OP已經知道;) – zhangxaochen

+2

鑑於他們正在詢問如何加載ui文件的基礎知識,我不會如此確定。在我看來,最好是覆蓋所有的基地! –

相關問題