QT_CREATE 教程

所需积分/C币:10 2011-11-23 2.85MB PDF
评分

Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础。 基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但Qt具有优良的跨平台特性、面向对象 、丰富的API、大量的开发文档等优点。
8.点击 Finish,完成工程的建立 Prd是画不是都西 /…道 9.我们可以看见工程中的所有文件都出现在列表中了。我们可以直接按下下面的 绿色的run按钮或者按下Ctr1+R快捷键运行程序。 10.程序运行会出现空白的对话框,如下图。 11.我们双击文件列表的 dialog. ui文件,便出现了下面所示的图形界面编辑界 面。 12.我们在右边的器件栏里找到 Label标签器件 13.按着鼠标左键将其拖到设计窗口上,如下图。 14.我们双击它,并将其内容改为 helloworld。 15.我们在右下角的属性栏里将字体大小由9改为15。 16.我们拖动标签一角的蓝点,将全部文字显示出来。 17.再次按下运行按钮,便会出现 helloworld。 Nilo wold 到这甲 helloworld程序便完成了。 Qt creator编译的程序,在其工程文件夹下会有一个 debug 文件夹,其中有程序的.exe可执行文件。但 Qt creator默认是用动态链接的, 就是可执行程序在运行吋需要相应的.d11文件。我们点击生成的.exe文件,首 先可能显示“没有找到 mingw10.d1l,因此这个应用程序未能启动。重新安装 应用程序可能会修复此问题。”表示缺少 mingw10.d11文件 解决这个问题我们可以将相应的.d11文件放到系统 中。在 Qt creator的安装日录的qt文件下的bin文件夹下(我安装在了D盘, 所以路径是D:、Qt\2009.04\qt\bin),可以找到所有的相关.dl1文件。在这里 找到 mIngw10.dll文件,将其复制到C:\ WINDOWS\ system文件夹下,即可。下 面再提示缺少什么d11文件,都像这样解决就可以了。 、 Qt creator编写多窗口程序(原创) 实现功能: 程序开始岀现一个对话框,按下按钮后便能进入主窗口,如果ˉ 接关闭这个对话框,便不能进入主窗口,整个程序也将退出。当进入主窗口后, 我们按下按钮,会弹出一个对话框,无论如何关闭这个对话框,都会回到主窗口 实现原理 程序里我们先建立一个主工程,作为主界面,然后再建立一个对 话框类,将其加入工程中,然后在程序中调用自己新建的对话框类来实现多窗凵 实现过程: 1.首先新建Qt4 Gui application程,工程名为nGui, Base class选为 QWidget 建立好后工程文件列表如下图。 51t gui. pro O wi deet. cpp E: \Qt\qt4. 5ex smpl 目 wi dret,h 阅r 2.新建对话框类,如下图,在新建中,选择 Qt Designer Form class 3.选择 Dialog without Buttons m 一[:[ 4类名设为 modle 5.点击 Finish完成。注意这里已绎默认将其加入到∫我们刚建的工程中∫。 P图 贴人 6.如下图,在 mydlg.ui中拖入一个 Push button,将其上的文本改为“进入主 窗口”,在其属性窗口中将其 objectName改为 enterin,在下面的 Signals and slots editor中进行信号和槽的关联,其中, Sender设为 enterin, Signal 设为 clicked o, Receive设为 myDlg,Slot设为 accept()。这样就实现了单击 这个按钮使这个对话框关闭并发出 Accepted信号的功能。下面我们将利用这个 信号。 一 7.修改主函数main.cpp,如下: #include <QtGui/ QApplication> #include widget #inc lude mydlg h //加入头文件 int main(int argc, char *argv[]) APplication a(argc, argv) Widget w my DIg my 1 //建立自己新建的类的对象my1 ifmy l exec(==QDialog:: Accep //利用 Accepted信号判 断 enterin是否被按下 how o /如果被按下,显示主窗 return a exec( /程序一直执行,直到主窗口 关闭 else return 0. //如果没被按下,则不会进入主窗口,整个程 序结束运行 主函数必须这么写,才能完成所要的功能。 如果主函数写成下面这样: #include QiGui/ APplication> #include widget. h #include mydlg h int main (int al ar米argv QApplicalion a(argc, argv) my dIg my 1 if(my1 O==QDialog: Accepted Widget return a execO 这样,因为w是在if语句里定义的,所以当证语句执行完后它就无效了。这样 导致的后果就是,按下 enterIn后,主界面窗口一闪就没了。如果此时对程序 改动了,再次点击运行时,就会出现 error: collect2: Id returned 1 exit status的错误。这是因为虽然主窗口没有显示,但它只是隐藏了,程序并没有 结束,而是在后台运行。所以这时改动程序,再运行时便会出错。你可以按下调 试栏上面的红色Stopυ停止按钮来停止程序运行。你也可以在 windows任务管理 器的进程中将该进程结束,而后再次运行就没问题了,当然先关闭 Qt creator 而后再重新打开,这样也能解决问题。 如果把程序改为这样 #include <QtGui/ QApplication #include widget. h #include mydlg h int main(int argc, char * argv[]) QApplication a arge, argv) Dig my l Widget w if(my l exec(==QDialog:: Accepted howo return a execo 这样虽然解决了上面主窗口一闪而过的问题,但是,如果在my1对话框出现的时 候不点 enterin,而是直接关闭对话框,那么此时整个程序应该结東执行,但 是事实是这样的吗?如果你此时对程序进行了改动,再次按下run按钮,你会发 现又出现了 error: collect2: Id returned 1 exit status的错误,这说明程 序并没有结束,我们可以打开 windows任务管理器,可以看到我们的程序仍在执 行 因为 return a. exec o;一句表示只要主窗口界面不退出,那么程 序就会一直执行。所以只有用第一种方法,将该语句也放到if语句中,而在else 语句中用 else return0;,这样如果 enterbtn没有被按下,那么程序就会结 束执行了。 到这里,我们就实现了一个界面结束执行,然后弹出另一个 界面的程序。下面我们在主窗口上加一个按钮,按下该按钮,弹出一个对话框, 但这个对话框关闭,不会使主窗凵关闭。 8.如下图,在主窗口加入按钮,显小文本为“弹出一个对话框”,在其上点击鼠 标右键,在弹出的菜单中选择 go to slot 一写 码 四山a=品 t 9.我们选择单击事件 clicked() L面,用面面L 感一c 10.我们在弹出的槽函数中添加一句 my2为我们新建对话框类的另一个对象,但是my2我们还没有定义,所以 在 widget.h文件中添加相应代码,如下,先加入头文件,再加入my2的定义语 句,这里我们将其放到 private里,因为一般的函数都放在 public里,而变量 都放在 private里。 #ifndef WIdGET H #define Widget h #include < QtGui/QWidget> #include mydlg h //包含头文件

...展开详情
立即下载 最低0.43元/次 身份认证VIP会员低至7折
举报 举报 收藏 收藏
分享

评论 下载该资源后可以进行评论 8

IT刚哥 写的很好,适合初学者
2016-07-21
回复
GIS_wudi 不错的资源教程
2014-08-18
回复
zhouxixue 桌面应用图标效果
2014-06-03
回复
xiaoyaosanrenxiao 不错的资源,对于初学者很有帮助
2013-11-14
回复
z_yuanlv 相当不错。下载后一直在看,忙着干活,都忘了来这感谢一下挖井人。
2013-08-07
回复
img
hlzhanga

关注 私信 TA的资源

上传资源赚积分,得勋章
相关内容推荐