欢迎来到天天文库
浏览记录
ID:37502745
大小:615.95 KB
页数:40页
时间:2019-05-24
《达内培训qt编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、TarnaQT课程QTQT编程1QT基础2编程:C++代码方式3编程:QTDesigner4编程:QTCreatorQT是图形用户程序框架•一个基于C++语言的框架•一个专注于用户图形界面的框架•一个跨平台的框架•一个艺术级别的图形开发工具这就是-------QTQT的由来和发展Qt是TrollTech开发的一个跨平台的C++图形用户界面应用程序框架。1991年HaavardNord和EirikChambe-Eng于开始开发"Qt"。1994年3月4日创立公司,最早名为QuasarTechnologies,然后更名为Tro
2、llTech。2005年6月27日Qt4.0发布。2008年6月17日被NOKIA公司收购,以增强该公司在跨平台软件研发方面的实力,更名QtSoftware。2009年5月11日,诺基亚QtSoftware宣布Qt源代码管理系统面向公众开放。为什么选择QT?•基于C++简易、面向对象•优良的跨平台特性•Qt架构健壮,性能强大•Qt使用起来简便高效•Qt是开源软件QT编程环境•<1>QT的工具$QTDIR/bin•<2>QT的头文件$QTDIR/include•<3>QT的库$QTDIR/libQT编程环境•QTDIR•QM
3、AKESPEC•PATH例子一:helloworld<1>检查有没有qmake。<2>建立一个新的文件夹,命名为hello。<3>创建一个新的源程序文件hello.cpp,编辑代码。<4>qmake–project生成项目文件hello.pro。<5>qmakehello.pro生成makefile。<6>执行make命令。<7>执行生成的可执行程序。代码分析例子一代码解析:<1>对于每一个Qt类,都有一个与该类同名的头文件,在这个头文件中包含了对这个类的定义。<2>创建了一个QApplication的对象,用来管理整个应
4、用程序所用到的资源。<3>创建了一个QLabel类的对象,也可以叫做窗口部件。<4>创建窗口部件的时候,标签(QLabel)通常都是隐藏的,这就允许我们先对其进行设置,然后再显示他们。代码分析<5>app.exec()将程序的控制权传递给qt这个时候程序就会进入事件循环状态,等待用户的动作。备注:帮助手册查询QLabel类qt中的乱码问题QTextCodec类的使用例子二:程序的退出<1>功能:用户可以通过点击一个按钮,使对话框退出运行。<2>创建一个新的文件夹,命名为quit。<3>创建一个新的源程序文件,叫做quit.
5、cpp,编辑代码。<4>编译运行。代码分析<1>使用帮助手册查询QPushButton<2>信号与槽初步概念。<3>Qt的窗口部件通过发射信号(signal)来表明一个用户动作已经发生或者是一个状态已经改变。<4>把窗口部件发射的信号和一个函数连接起来QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()))。例子三:输入用户年龄<1>功能:用户可以通过微调框和滑块来输入年龄<2>创建一个新的文件夹,命名为age<3>创建age.cpp,编辑代码<4>编译运行输
6、入年龄程序效果图代码分析例子三代码分析:<1>由三个窗口部件组成:QSpinBoxQSliderQWidget<2>通过方法setWindowTitle()函数来设置显示在窗口标题栏上的文字。<3>如何改变对象的大小和位置。<4>初步掌握信号和槽C++方式组织代码代码的组织规则:•头文件和实现分离有自定义信号和槽要用Q_OBJECT•以窗体或者对话框作为封装用户ui代码的基本单元•窗体与对话框中的组件都封装成成员加法器的实现•加法器类的实现信号和槽信号和槽:<1>信号和槽机制是qt编程的基础,可以使互不相干的对象绑定在一起
7、<2>槽可以和信号连接在一起,这样绑定之后,每当发射(触发)这个信号的时候,就会自动的调用这个槽。<3>如果在类中要定义信号槽必须声明宏Q_OBJECT;<4>定义信号public:signals:定义槽函数publicslots:<5>使用connect进行连接:connect(sender,SIGNAL(signal),receiver,SLOT(slot));<6>连接可以被移除disconnect(lcd,SIGNAL(overflow()),this,SLOT(handleMathError()));信号和槽补充
8、:<1>一个信号可以连接多个槽<2>多个信号可以连接一个槽<3>一个信号可以与另外一个信号相连接当发射第一个信号的时候,也会发射第二个信号。<4>当删除对象的时候,Qt会自动的移除和这个对象相关的所有连接。结合前面的例子:是不是任意的信号和槽都可以进行连接呢?信号和槽使用connect需要注意:<1>要
此文档下载收益归作者所有