作者:畅学电子 点击上方 “ 畅学电子 ” 一键关注,轻松学习电子知识 炎炎夏日,大家的激情不减啊,嵌入式竞赛搞得如火如荼啊。做嵌入式系统的童鞋都需要用到QT,这个可视化的编程工具确实非常强悍,今天我就写写这方面的内容,通过几个小技巧让大家更喜欢这个工具。 1、Qt信号和插槽通信 Signal和Slot是Qt中一种用于对象间通信的调用机制,不同于传统的函数回调方式。信号和插槽是Qt中非常有特色的地方,可以说是Qt编程区别于其它编程的标志。 信号和插槽不是标准C++功能,需要特殊的语句才能创建信号和插槽,但是C++编译器不能理解这些语句。必须经过特殊的工具对象编辑器MOC(Meta Object Compiler)将源代码中创建信号和插槽的语句翻译成C++编译器能够理解的代码。 步骤: (1)进入/sbc2410/x86-qtopia目录,运行set-env脚本,设置环境变量,然后创建文件夹signalslot。 $ cd /sbc2410/x86-qtopia $ mkdir signalslot (2)进入signalslot目录,建立文件signalslot.cpp,并编写程序,然后用progen命令生成工程文件signalslot.pro。 $ cd signalslot $ vi signalslot.cpp $ progen –t app.t –o signalslot.pro (3)使用tmake工具,生成signalslot工程的Makefile文件,并按照6.1小节进行修改,然后编译,得到可执行文件signalslot。 $ tmake –o Makefile signalslot.pro (4)启动虚拟控制台,运行signalslot程序,点击“Quit”按钮,程序将退出。 $ ./signalslot -qws 信号和插槽实验结果 2、按钮 一个友好的图形界面,一般都会有对话框,用于人机交互。Qt中有很多类型的对话框,如颜色对话框、字体对话框、文件对话框、输入对话框和消息对话框等。不同对话框都有一系列的API函数,调用这些函数必须包含头文件qdialog.h。 (1)进入/sbc2410/x86-qtopia目录,运行set-env脚本,设置环境变量,然后创建文件夹dialog.。 $ cd /sbc2410/x86-qtopia $ mkdir dialog (2)进入dialog目录,建立文件userdialog.h和userdialog.cpp,并编写程序,然后用progen工具生成工程文件userdialog.pro。 $ cd dialog $ vi userdialog.h $ vi userdialog.cpp $ progen –t app.t –o userdialog.pro (3)使用tmake工具生成userdialog工程的Makefile文件,并进行修改,编译生成可执行文件userdialog。 $ tmake –o Makefile userdialog.pro $ make (4)启动虚拟控制台,运行userdialog程序,点击POPUP按钮,将会弹出一个新的对话框,点击对话框的POPDOWN按钮,新对话框将关闭。 $ ./userdialog -qws 对话框实验结果 3、Qt布局 一个用户图形界面,布局也是至关重要,合理的布局能增加界面的美感,亦能够提高软件的易用性。图形界面编程,一般包括基本组件、组件的布局以及组件的回调。Qt中有很多种布局,最基本的就是QLayout(包括QBoxLayout:QHBoxLayout,QVBoxLayout)和QGridLayout。使用了布局相关API函数的应用程序,需要包含头文件qlayout.h。 步骤: (1)进入/sbc2410/x86-qtopia目录,运行set-env脚本,设置环境变量,然后创建文件夹layout。 $ cd /sbc2410/x86-qtopia $ . set-env $ mkdir layout (2)进入layout目录,建立文件layout.cpp,并编写程序,然后用progen工具生成工程文件layout.pro。 $ cd layout $ vi layout.cpp $ progen –t app.t –o layout.pro (3)使用tmake工具,生成layout工程的Makefile文件,并进行修改,编译,得到可执行文件layout。 $ tmake –o Makefile layout.pro (4)启动虚拟控制台,运行layout程序。 $ ./layout -qws Qt布局实验结果 今天就写这么多吧,爱上嵌入式的孩纸们,善用、巧用、多用QT吧,会让你的系统变得有生命有活力! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ==> 前往 www.eeskill.com 学习更多知识! ------------------------------------------------------------------------- 我们尊重原创,也注重分享,如若侵权请联系qter@qter.org。 ------------------------------------------------------------------------- |