QT3与QT4中uic的使用差异---李家凯老师

发布时间:2010-8-24 10:50    发布者:crcrwxy
关键词: uic , QT3 , QT4
作者:华清远见武汉华嵌中心 金牌讲师 李家凯


1、
QT3

QT3中,用designer设计好界面后,使用uic来根据界面生成代码文件,QT3uic可以自动生成.h.cpp文件,假设你在制作一个名叫DemoDlg的对话框,生成文件名为DemoDlg.uiui文件,那么 QT3uic生成的文件则是DemoDlg.hDemoDlg.cpp,具体的命令如下:
# uic
DemoDlg.ui

-o
DemoDlg.h

# uic
DemoDlg.ui


-i
DemoDlg.h
-o
DemoDlg.cpp

所有的界面初始化工作都在cpp文件中执行,控件的定义在h文件的类中声明,之后程序的逻辑代码(包括信号与槽的连接)也将加入这个文件,那么对于一个已经完成逻辑功能的对话框来说,如果要修改界面布局,你就不得不重新用uic生成.h.cpp文件,然后将其中界面相关的代码复制到你已经修改的文件中,此时决不能直接用uic直接生成到修改过的文件上,因为那样你的代码将全部被覆盖掉。

2QT4
在由ui文件生成h文件方面,QT4改进了,QT4中推荐的方法是,使用uic根据界面文件生成一个h文件,以前面的DemoDlg为例,生成的文件叫做ui_DemoDlg.h,在控制台执行命令为:
# uic
DemoDlg.ui
-o
ui_DemoDlg.h

ui_DemoDlg.h中会实现一个名为Ui_DemoDlg的类,包含了界面所有控件的加载功能,而程序的逻辑功能依然使用DemoDlg.hDemoDlg.cpp这两个功能,并在DemoDlg.h中用多重继承的方法,从刚才的Ui_DemoDlg类来继承出实际的DemoDlg类,在DemoDlg的构造函数中,只需要使用setupUi()方法,就可以构建出整个界面,并且由于是从Ui_DemoDlg继承来的,在逻辑代码中也可以方便的访问所有控件,当然Ui_DemoDlg类中控件的权限为public最好了。
由此看来,QT4的方法是个巨大的进步,因为ui_xxx.h中不再包含任何用户自己写的代码了,此时你想更改界面布局的话,只需要用designer修改界面,再用uic生成ui_xxx.h文件,直接替换原文件就可以了。这样就不会因为界面的改变而迫使你修改xxx.hxxx.cpp了。


转自:http://www.embedhq.org/html/jsbw/2010/0309/331.html
本文地址:https://www.eechina.com/thread-23468-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表