2013-12-11 11 views

回答

2

小工具裏面的其他部件不產生在Qt的層次,這意味着如果你有widget1widget2您可以直接訪問widget1,像self.widget1(和self.widget2

您可以創建一個類,它包含你對你的UI窗體上的所有部件如下:

from PyQt4 import uic 
Form, Base = uic.loadUiType(r'path\to\your\uifile.ui') #get ui Form and Base class 
class Window(Form, Base): 
    def __init__(self, parent = None): 
     #here you can access your widgets 
     #self.combobox.addItem('Item') 
     #self.spinbox.setValue(10) 
     ... 

這就是你所需要的。

1

首先,您需要使用pyuic生成從設計ui文件一個Python模塊:

pyuic4 -o mainwindow_ui.py mainwindow.ui 

然後將它導入到應用程序:

from PyQt4 import QtCore, QtGui 
from mainwindow_ui import Ui_MainWindow 

class MainWindow(QtGui.QMainWindow, Ui_MainWindow): 
    def __init__(self): 
     super(MainWindow, self).__init__() 
     self.setupUi(self) 

if __name__ == '__main__': 

    import sys 
    app = QtGui.QApplication(sys.argv) 
    window = MainWindow() 
    window.show() 
    sys.exit(app.exec_()) 

這將增加所有的部件從Qt的設計器,並使其成爲MainWindow類的屬性。屬性名稱將與在Qt Designer中設置的objectName屬性相同。因此,如果QComboBox被命名爲「組合框」,而QSpinBox名爲「SPINBOX」,他們可以在MainWindow類中像這樣來訪問:

self.comboBox.addItems('Foo') 
    self.spinBox.setValue(10) 
相關問題