《linux系统编程第11章.ppt》由会员分享,可在线阅读,更多相关《linux系统编程第11章.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 11 章章Qt编程编程本章重点 qQt编程中qmake的使用qQt编程中Action机制的应用qQt Designer设计器的应用211.1 Qt简介简介qQt是用于创建Linux下的图形程序最出色的工具包之一,KDE桌面环境就是在Qt平台上开发出来的。qQt是基于多平台的C+图形用户界面应用程序的框架,完全面向对象,很容易扩展。Qt平台包括Qt类库,Qt设计者,Qt语言家和Qt助手。Qt的在线帮助文档提供了丰富多彩的帮助内容,不管是专业的编程人员或者是刚刚接触Qt的爱好者来说,都是必不可少的好帮手。qQt适用于Windows、Mac OS X和UNIX/Linux等操作环境,对不用的平
2、台有专门的API封装,Qt的跨平台性只需在不同的平台下重新汇编一个单一源代码库即可。311.2 Qt的安装的安装qFedora Core 4下默认安装的是qt-3.4.4版本。如果安装系统的时候没有选择,可以从红帽子主菜单的系统设置中,打开添加/删除应用程序,在“开发”类别中找到KDE软件开发,这里额外的软件包也要勾上勾,更新程序即可,详细过程见附录3。安装完成之后就可以在编程菜单中找到相关的工具。411.3 Qt的编译器的编译器qmakeqqmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。qqmake编译的一般步骤:编译生成工程文件:qmake pr
3、oject编译生成makefile文件:qmake编译makefile文件:make511.4 Qt中的中的Actionq在GUI程序编程中有一种叫做Action的机制。一个action包括了显示图标,工具条上的提示信息,菜单文本,快捷方式,whats this帮助文本等信息,全部整合在一个action中。可以把action放置到菜单或工具条上,添加菜单项和工具条按钮。qQAction类提供了一个可以同时出现在菜单和工具条上的抽象用户界面操作。611.5 Qt中的信号中的信号-槽机制槽机制1.槽:是标准的成员函数,是与信号连接的,当所连接的信号被发射的时候,连着的槽就被执行。Qt中包含许多已经
4、定义好直接可以使用的槽。2.信号:也是成员函数,和槽不同的是同一个信号可以连接多个槽,连接到同个信号的槽都会在适当的时候被执行。3.用户自定义信号-槽:Qt本身自带的槽和信号能给程序员编程带来很大的方便,而且涵盖较广,功能强大。在特殊的情况下,也需要用户自行来创建信号和槽。q创建槽slot的一般步骤:声明槽-定义槽-编译槽q创建信号signals的一般步骤:声明信号-定义-连接槽711.6 Qt DesignerqQt Designer设计器,具有可视化的编辑图形界面和实现程序的功能。q例例11.1:用:用Qt Designer设计器创建一个设计器创建一个test工工程,然后新建窗体,在窗体上
5、添加一个程,然后新建窗体,在窗体上添加一个Label标标签,内容为签,内容为“欢迎来到欢迎来到LUPAWORLD”,再添置,再添置一个按钮,作为退出按钮,把按钮的一个按钮,作为退出按钮,把按钮的clicked()()信号和系统的信号和系统的close()槽联系起来,效果是按()槽联系起来,效果是按下按钮后退出程序。下按钮后退出程序。811.6 Qt Designer操作步骤:操作步骤:q步骤步骤1.启动Qt Designer。q步骤步骤2.新建窗体。q步骤步骤3.修改窗体属性。q步骤步骤4.添加TextLabel标签。q步骤步骤5.添加按钮控件。q步骤步骤6.连接信号和槽。q步骤步骤7.创建m
6、ain.cpp文件。q步骤步骤8.保存。911.6 Qt Designerq步骤步骤9.编译运行程序rootlocalhost#cd /root/qtProject/te-qstrootlocalhost test#qmake projectrootlocalhost test#qmakerootlocalhost test#makerootlocalhost test#./test 思考题:用思考题:用Qt Designer设计器创建一个设计器创建一个information.pro工程,新建主窗体工程,新建主窗体infomation,标题为,标题为“信息信息”。在窗体上添。在窗体上添加加“姓
7、名姓名”、“性别性别”、“出生年月出生年月”和和“家庭住址家庭住址”等等4个标签,每个标签后面对应一个标签,每个标签后面对应一个文本框个文本框,用来填写信息。在屏幕的下方添,用来填写信息。在屏幕的下方添加两个按钮,一个为加两个按钮,一个为“提交提交”,一个为,一个为“退退出出”。工程实现信息的填写和提交功能。要。工程实现信息的填写和提交功能。要求模仿上例,完成界面设计,其中求模仿上例,完成界面设计,其中“提交提交”按钮功能不需要实现,按钮功能不需要实现,“退出退出”功能需要实功能需要实现,按下现,按下“退出退出”按钮退出程序。按钮退出程序。1011.7 Qt应用实例应用实例q例例11.2:创建
8、一个简单的Qt程序,其中包含标签Label,按钮PushButton,滑动条Slider和LCD计数器LCDNumber,把所有的控件按照顺序从上到下垂直的放置在窗口中。利用预定义信号和槽,把滑动条的改变和LCD计数器的显示联系起来,使得计数器显示对应的数值。最后按下退出按钮,程序退出。先在root目录下创建qtProject目录,把文件命名为qtPro.cpp,保存在qtproject目录下。编译的时候使用qmake编译程序。q程序模块图:1111.6 Qt Designer1211.6 Qt Designerq编辑源程序代码:1311.6 Qt Designerq程序调试rootlocal
9、host qtProject#qmake-projectrootlocalhost qtProject#qmakerootlocalhost qtProject#makeq执行可执行文件:rootlocalhost root#./qtProject思考题:创建一个思考题:创建一个temperature.cpp的文件,定义一个的文件,定义一个temperature类,需要三种控件类,需要三种控件TextLabel,LCDNumber和和SpinBox。TextLabel的内容显示的内容显示“温度计温度计”,要求,要求spinBox的的valueChanged信号和信号和LCDNumber的的di
10、splay显示槽连接,通过对显示槽连接,通过对spinBox的微调,的微调,LCD计数器上显示对应的数字,其中数字范围控制在计数器上显示对应的数字,其中数字范围控制在-10至至50之间。之间。如果温度在如果温度在-10至至10的之间,的之间,LCD计数器的背景色为蓝色,如果在计数器的背景色为蓝色,如果在10,50之间背景色为红色。之间背景色为红色。14思考与实验思考与实验1.设计一个电子时钟。主要用LCDNumber控件来显示时间,时间显示的格式为00:00,要求鼠标左键点击改控件的时候,LCD可以显示当前的日期,再按下左键的时候又回到当前时间。新建一个基于LCDNumber的类clock,用
11、setFramesStyle设置显示器的样式,分别用showtime()和showdate()两个函数来显示当前时间和日期。鼠标左键按下的事件是用来区别显示时钟还是日期的标志。在文件中添加qdatetime.h头文件用来正确显示时间和日期。15思考与实验思考与实验2.使用Qt Designer开发工具设计一个计算器程序,用到TextEdit,SpinBox,Slider,ComboBox,PushButton和LCDNumber。其中TextEdit用来输入数字,ComboBox用来选择+-*/运算符号,“=”符号用按钮,最后的计算结果在LCDNumber上显示。SpinBox控制第一个TextEdit框的数字,Slider控制第二个TextEdit框中的数字,两者的范围均在0,50之间。程序实现的效果为:SpinBox控制调整第一个数字的值,在ComboBox中选择要进行的运算符号,再用Slider调整第二个数字,然后按下“=”按钮,最终的结果显示在LCDNumber中。16
限制150内