linux-Qt图形界面程序设计.ppt

上传人:M****1 文档编号:569378192 上传时间:2024-07-29 格式:PPT 页数:25 大小:476.55KB
返回 下载 相关 举报
linux-Qt图形界面程序设计.ppt_第1页
第1页 / 共25页
linux-Qt图形界面程序设计.ppt_第2页
第2页 / 共25页
linux-Qt图形界面程序设计.ppt_第3页
第3页 / 共25页
linux-Qt图形界面程序设计.ppt_第4页
第4页 / 共25页
linux-Qt图形界面程序设计.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《linux-Qt图形界面程序设计.ppt》由会员分享,可在线阅读,更多相关《linux-Qt图形界面程序设计.ppt(25页珍藏版)》请在金锄头文库上搜索。

1、12024年年7月月29日日第第13章章Qt图形界面程图形界面程序设计序设计 22024年年7月月29日日主要内容主要内容Qt的作用的作用Qt简介简介基本基本Qt程序示例程序示例项目文件项目文件利用利用qmake编译程序编译程序应用消息应用消息/槽的槽的Qt程序示例程序示例程序结构程序结构界面布局界面布局程序编译程序编译32024年年7月月29日日Qt的作用的作用网络协议网络协议X客户端(应用程序)客户端(应用程序)X工具包、工具包、Gtk+,QtXLibX客户端(应用程序)客户端(应用程序)X工具包、工具包、Gtk+,QtXLibX服务器服务器设备驱动程序设备驱动程序Qt工具包在工具包在XW

2、indows中的作用中的作用和和Gtk+一样,是一样,是Xlib之上更高层的开发工具包,它之上更高层的开发工具包,它们将底层的们将底层的Xlib的的API进行封装,提供更高级的接进行封装,提供更高级的接口,达到降低开发难度,提高开发效率的目的。口,达到降低开发难度,提高开发效率的目的。 42024年年7月月29日日Qt简介简介良好的可移植性:良好的可移植性:X11:即运行在:即运行在X Windows的系统,包括的系统,包括linux、unix等;等; windows系统:包括系统:包括windows95/98/Nt/2000/Xp/2003等;等;Macintosh系统:系统:Max OS

3、X;嵌入式系统;嵌入式系统;辅助工具辅助工具Qmake:简化编译过程:简化编译过程QtAssist:定位帮助信息:定位帮助信息QtDesigner:辅助界面设计:辅助界面设计52024年年7月月29日日Qt简介简介Qt的维护与许可制度的维护与许可制度不是由软件组织和基金会维护;不是由软件组织和基金会维护;由由Trolltech国际化的公司维护;国际化的公司维护;Q Public License (QPL)的许可协议;)的许可协议; General Public License(GPL)版本)版本 ;双许可证(双许可证(Dual Licensing)的版本)的版本 商业软件商业软件非商业软件非商

4、业软件62024年年7月月29日日Qt简介简介界面元素的组织:界面元素的组织:以类继承的结构组织;以类继承的结构组织;基类:基类:QWidget;事件与事件处理程序的关联:事件与事件处理程序的关联:重载已有的事件处理程序;重载已有的事件处理程序;适合于已经存在的事件处理函数适合于已经存在的事件处理函数 利用信号利用信号/槽的机制关联信号(事件)和信槽的机制关联信号(事件)和信号对应的事件。号对应的事件。信号(信号(signal)是对象(类)向外界发送的任意)是对象(类)向外界发送的任意消息、事件,不仅仅是界面元素产生的一般消息消息、事件,不仅仅是界面元素产生的一般消息(鼠标、键盘等)。(鼠标、

5、键盘等)。 槽(槽(slot)是可以接收消息的特殊函数。)是可以接收消息的特殊函数。 72024年年7月月29日日基本基本Qt程序程序程序运行效果程序运行效果组成:组成:一个窗口一个窗口一个字符串一个字符串动作:动作:运行显示窗口运行显示窗口关闭退出关闭退出82024年年7月月29日日程序清单程序清单hello.cpp1 #include 头文件头文件2 #include 头文件头文件3 int main(int argc, char *argv )主函数主函数4 QApplication app(argc, argv);应用程序对象应用程序对象5 QLabel label (Hello Qt

6、!, 0);标签对象标签对象6 app.setMainWidget(&label);7 label.show();显示标签窗口显示标签窗口8 return app.exec();启动程序启动程序9 92024年年7月月29日日程序编译程序编译项目文件项目文件hello.pro项目文件格式:项目文件格式:基本格式:基本格式:变量名变量名 值值 TEMPLATE app 含义:生成一个可执行文件含义:生成一个可执行文件其它取值:其它取值:lib,subdirs,vcapp,vclib;hello.pro1 TEMPLATE = app2 INCLUDEPATH += .3 CONFIG += qt

7、 warn_on release4 SOURCES += hello.cpp102024年年7月月29日日程序编译程序编译含义:含义:lib:生成库文件:生成库文件subdirs:生成某个目录下的编译指导文件;:生成某个目录下的编译指导文件; vcapp:生成:生成vc+支持的可执行程序;支持的可执行程序;vclib:生成:生成vc+支持的库文件。支持的库文件。INCLUDEPATH += . 含义:将当前目录增加到头文件的搜索路径中去含义:将当前目录增加到头文件的搜索路径中去 CONFIG += qt warn_on release 含义:将含义:将CONFIG变量的值增加三个字符串变量的值

8、增加三个字符串 其它取值:其它取值:qt:生成的目标是基于:生成的目标是基于Qt库的应用程序或者程序库;库的应用程序或者程序库;debug:编译时打开调试信息;:编译时打开调试信息;release:编译时进行代码优化;:编译时进行代码优化;warn_on:编译时尽量多地报告警告信息;:编译时尽量多地报告警告信息;warn_off:编译时仅报告严重的警告信息;:编译时仅报告严重的警告信息;112024年年7月月29日日程序编译程序编译程序编译程序编译查看文件查看文件生成生成Makefile查看结果查看结果编译编译查看结果查看结果122024年年7月月29日日程序编译程序编译命令分析命令分析必需的

9、命令:必需的命令:qmake hello.pro :根据项目文件生成根据项目文件生成Makefilemake:根据生成的:根据生成的Makefile编译代码生成可执行编译代码生成可执行文件文件hello生成的文件:生成的文件:Makefile:指导:指导make进行编译的文件进行编译的文件hello.o:编译源文件得到的目标文件:编译源文件得到的目标文件hello:将目标文件链接后得到的可执行文件:将目标文件链接后得到的可执行文件程序运行:程序运行:通过输入可执行文件名运行:通过输入可执行文件名运行:./hello 得到程序界面得到程序界面132024年年7月月29日日使用信号使用信号/槽的槽

10、的Qt程序示例程序示例程序运行界面程序运行界面绿色:按钮(绿色:按钮(QPushButton )红色:红色:LCD数码显示(数码显示(QLCDNumber )蓝色:编辑框(蓝色:编辑框(QLineEdit ,QMultiLineEdit )黄色:自定义界面元素(黄色:自定义界面元素(MyWidget)quit start go lcd edit medit MyWidget 142024年年7月月29日日使用信号使用信号/槽的槽的Qt程序示例程序示例界面设计思路界面设计思路整个界面为一个界面元素;整个界面为一个界面元素;类型:类型:MyWidget基类:基类:QWidget其它元素组合在其它元

11、素组合在MyWidget上;上;界面元素:界面元素:quitstartgolcdeditmedit界面布局界面布局网格布局网格布局grid (QGridLayout )元素之间通过信号元素之间通过信号/槽进行通讯槽进行通讯152024年年7月月29日日使用信号使用信号/槽的槽的Qt程序示例程序示例程序结构程序结构主函数:主函数:main()()功能:启动消息循环,显示程序界面功能:启动消息循环,显示程序界面两个类:两个类:类:类:Puzzle功能:完成产生随机数,并进行判断功能:完成产生随机数,并进行判断类:类:MyWidget功能:定义并放置界面元素,接受用户输入;功能:定义并放置界面元素,

12、接受用户输入;5个文件个文件:main.cpp:定义主函数定义主函数puzzle.h,puzzle.cpp:定义并实现类:定义并实现类Puzzlemywidget.h,mywidget.cpp:定义并实现类定义并实现类MyWidget162024年年7月月29日日使用信号使用信号/槽的槽的Qt程序示例程序示例文件目录结构文件目录结构当前工作目录当前工作目录 ./main.cppmywidget/mywidget.cppmywidget.hpuzzle.cpppuzzle.h172024年年7月月29日日类结构类结构类类Puzzle的结构的结构符号含义:符号含义:共有,:共有,public:私有

13、,:私有,private成员说明:成员说明:answer:猜数字的答案;:猜数字的答案;gen_answer():产生随机数答案;产生随机数答案;get_answer():返回答案值;返回答案值;judge():将用户的猜测和答案比较,得出比较结:将用户的猜测和答案比较,得出比较结果;果;start():开始,调用过程产生答案;开始,调用过程产生答案;- int answer- int gen_answer()+int judge()+int get_answer()+void start()Puzzle182024年年7月月29日日QWidgetMyWidget-quit,start,lcd

14、,grid-edit,go,medit-count,guess-puzzle#closeEvent-init(),finalize(),getAnswer(),-showMsg()closeSignal()+onStart()+onGo()+onClose()类结构类结构类类MyWidget结构结构符号含义:符号含义:+、-、#:共有、私有、保护共有、私有、保护三角:继承关系三角:继承关系红色:型号红色:型号绿色:槽绿色:槽成员说明:成员说明:quit、start、lcd、edit、go、medit:界面上的元素:界面上的元素grid:网格布局:网格布局count:用户猜测的次数:用户猜测的次

15、数guess:用户的猜测:用户的猜测puzzle:对象,完成产生随机:对象,完成产生随机数,并判断的功能数,并判断的功能192024年年7月月29日日类结构类结构成员说明:成员说明:closeEvent:重载基类的方法;:重载基类的方法;init():游戏初始化;:游戏初始化;finalize():游戏结束的动作游戏结束的动作getAnswer():得到用户输入的答案得到用户输入的答案showMsg():根据用户的猜测,给出提示信息根据用户的猜测,给出提示信息onStart():用户点击用户点击start按钮的动作按钮的动作onGo():用户点击用户点击go按钮的动作按钮的动作onClose(

16、):用户点击关闭按钮的动作用户点击关闭按钮的动作closeSignal():程序关闭时,产生的信号。程序关闭时,产生的信号。202024年年7月月29日日界面布局界面布局本例中为本例中为4行行3列的布局列的布局坐标编码方式和坐标编码方式和Gtk+略有不同略有不同2100123startquitlcdeditgomedit212024年年7月月29日日界面布局界面布局向容器中放置界面元素的两个方法向容器中放置界面元素的两个方法占据一个单元格占据一个单元格void QGridLayout:addWidget ( QWidget * w,/欲放置的界面元素欲放置的界面元素 int row,/行编号行

17、编号 int col,/列编号列编号 int alignment = 0 );/对齐方式对齐方式占据多个单元格占据多个单元格void QGridLayout:addMultiCellWidget ( QWidget * w,/欲放置的界面元素欲放置的界面元素 int fromRow,/起始行编号起始行编号int toRow, /终止行编号终止行编号 int fromCol, /起始列编号起始列编号int toCol, /终止列编号终止列编号int alignment = 0 ); 222024年年7月月29日日界面布局界面布局元素位置参数取值元素位置参数取值元素名称元素名称行起始行起始行终止行

18、终止列起始列起始列终止列终止start00quit01go12lcd02edit1101medit2302232024年年7月月29日日项目文件项目文件增加的路径:增加的路径:目录:目录:mywidget文件:文件:mywidget目录下的头文件和目录下的头文件和cpp文件文件guess.pro1 TEMPLATE = app2 DEPENDPATH += mywidget3 INCLUDEPATH += . mywidget4 CONFIG += qt warn_on release5 HEADERS += mywidget/mywidget.h mywidget/puzzle.h6 SOU

19、RCES += main.cpp mywidget/mywidget.cpp mywidget/puzzle.cpp242024年年7月月29日日程序编译程序编译省略部分输出省略部分输出查看文件查看文件生成生成Makefile查看结果查看结果编译编译查看结果查看结果可执行文件可执行文件252024年年7月月29日日课后练习课后练习1、简述、简述qt在在X Windows系统中的地位。系统中的地位。2、比较、比较qt和和gtk+关联消息的方式。关联消息的方式。3、以、以qt为基础,现在有哪些已经比较成熟为基础,现在有哪些已经比较成熟的应用应用软件项目?的应用应用软件项目?4、简述、简述qt所使用的许可证特点。所使用的许可证特点。5、利用、利用qt编一个图形界面程序,至少用到编一个图形界面程序,至少用到窗口、按钮和一种布局。窗口、按钮和一种布局。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号