本实例使用一个简单的例子说明如何在程序开发中使用Designer生成.ui文件。本实例利用Qt Designer生成了3个简单的ui,在使用时,两个ui插入到主程序的QTabWidget中,另一个ui由按钮触发弹出,如下图所示。主程序窗口TestDialog采用的是手动编写代码的实现方式。
利用Qt Designer设计生成的.ui文件,在使用时可利用Qt自带的工具pyuic4生成ui_xxx.py文件进行使用。
下图是本实例使用Qt Designer设计的3个ui文件。
然后使用pyuic4对这三个ui文件进行转换,如下图所示。
下面是本实例的代码实现。
- from
PyQt4.QtGui import * - from
PyQt4.QtCore import * - import
ui_10_1,ui_10_2,ui_10_3 - import
sys -
- class
TestDialog(QDialog): -
def __init__(self,parent=None): -
super(TestDialog,self).__init__(parent) -
-
firstUi=ui_10_1.Ui_Dialog() -
secondUi=ui_10_2.Ui_Dialog() -
self.thirdUi=ui_10_3.Ui_Dialog() -
-
tabWidget=QTabWidget(self) -
w1=QWidget() -
firstUi.setupUi(w1) -
w2=QWidget() -
secondUi.setupUi(w2) -
-
tabWidget.addTab(w1,"First") -
tabWidget.addTab(w2,"Second") -
tabWidget.resize(380,380) -
-
self.connect(firstUi.childPushButton,SIGNAL("clicked()"),self.slotChild) -
self.connect(secondUi.closePushButton,SIGNAL("clicked()"),self,SLOT("reject()")) -
-
def slotChild(self): -
dlg=QDialog() -
self.thirdUi.setupUi(dlg) -
dlg.exec_() -
- app=QApplication(sys.argv)
- dialog=TestDialog()
- dialog.show()
- app.exec_()
import ui_10_1,ui_10_2,ui_10_3 这三个文件是通过pyuic4工具根据相应的ui文件生成的。
slotChild()槽函数用于响应弹出子窗口的按钮事件。
主程序中声明了3个变量,firstUi,secondUi,thirdUi分别对应3个ui。
第14行首先创建一个QTabWidget对象。
第15,16行创建第一个ui,首先新建一个QWidget对象,以此QWidget对象为参数调用第一个ui的setupUi()函数,生成第一个ui页面。
第17,18行以同样的方式创建第二个ui画面。
第20-22行在QTabWidget对象中插入两个准备好的ui页面。
第24行连接第一个ui页面上的childPushButton的clicked()信号与slotChild()槽函数。
第25行连接第二个ui页面上closePushButton的clicked()信号与reject()槽函数,关闭主窗口程序。
实现弹出对话框的槽函数slotChild()中,首先新建一个QDialog对象,以此QDialog对象为参数调用第三个ui对象的setupUi()函数,最后调用exec()显示此对话框。