linux下实现qtcreater ui事件处理函数编程,实例10 在程序中使用Ui

本实例使用一个简单的例子说明如何在程序开发中使用Designer生成.ui文件。本实例利用Qt Designer生成了3个简单的ui,在使用时,两个ui插入到主程序的QTabWidget中,另一个ui由按钮触发弹出,如下图所示。主程序窗口TestDialog采用的是手动编写代码的实现方式。

aeb0c48c496ff78e41404dcb94b845f8.gif           

c8c9a4dd7151174267beba4f81846727.gif

利用Qt Designer设计生成的.ui文件,在使用时可利用Qt自带的工具pyuic4生成ui_xxx.py文件进行使用。

下图是本实例使用Qt Designer设计的3个ui文件。

8e3830e2aaa5ec2acd4d1a43d181e7af.gif

然后使用pyuic4对这三个ui文件进行转换,如下图所示。

4b2205c0ec9fdcb296ae0e82365aebe3.gif

下面是本实例的代码实现。

fromPyQt4.QtGuiimport*

fromPyQt4.QtCoreimport*

importui_10_1,ui_10_2,ui_10_3

importsys

classTestDialog(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()"))

defslotChild(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()显示此对话框。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值