上篇文章我讲解了怎么去安装QT开发环境,下面我们讲解怎么去新建一个工程,工程由哪些结构组成。这里我们回顾一些知识点。
我的开发坏境是Ubuntu16.04 TLS ,我们用到的安装包截图如下,一个是QT Creater,一个是QTLibary。 QTCreater是一个集成开发环境,我们不用也可以,直接命令行写代码,但是很多东西不是很方便,建议大家一并安装上。
QT Assistant (QT助手) 是文档阅读器,我们可以查看我们需要的关于QT资料,和一些库和函数接口的讲解。
Qt Designer (QT 设计师) 是强大的跨平台GUI布局和格式构建器 (和ui相关,后面就会明白)
QT Demos(Qt 演示程序和实例)
Qt Linguist (Qt 语言家) 提供了一套加速应用程序翻译和国际化的工具。
下面开始创建我们的第一个工程
这里得补充一点:我们创建的工程目录路径的所有者必须是用户而不是root,不然会创建失败。可以在用户目录下创建工程目录或者在root下创建目录并用chown owner dir修改成用户拥有着。
2.1 新建GUI应用
点击文件->新建工程 ->选择QT控件项目->QT GUI 应用
设置工程名字和工程所在的路径
这里需要注意的是我保持默认状态就行,使用影子构建这个勾不要去掉了,这个的作用是让我们编译的程序和生成的程序分别在两个文件夹,在第一张图片里面可以看到有两个文件夹,hello和hello-build-Destop-QT. hello存放的是源码文件,hello-build-Destop-QT存放的是生成的文件等
类名可以随便取,相当于我们自己的类就保存在这个类名字下面,基类我们选择Qialog. 表明我们这个类继承与Qialog这个类,下面几个是头文件和源文件,还有一个是界面文件(很重要,我们下面讲解)
下面就是我们创建好的工程和我自己编写的main.cpp文件。下面我会带着大家一起分析这个源码。
左下角有个绿色三角形代表运行,或者在命令行下使用qmake -porject main.cpp 将生成一个hello.pro的工程文件,然后qmake 将生成Makefile文件帮助我怎么去编译这些文件,最后make就成功了。 大家也会发现集成开发坏境是一部到位,而命令行下需要很多步骤,想宏处理,连接库,连接头文件等,相对麻烦一点,但是对一个项目了解得相对透彻一点,对系统了解得更加全面。
下面开始讲解代码其他头文件不用看,我们创建GUI工程自动生成的,我们着重关注main.cpp和helloworld.ui这两个文件。
#include
#include "helloworld.h"
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); /* 设置编码,防止中文乱码 */
QDialog w; /* 创建一个 QDialog对象,是对话框*/
#if 0
w.resize(400,300); /* 对话框大小是400*300 */
QLabel lable(&w); /* 创建QLable对象,父窗口是w */
lable.move(10,120); /* lable 标签在对话框中的相对位置*/
//lable.setText("Hello World ! 喜爱Linux/熟悉python/精通C"); /* 中文乱码 */
lable.setText(QObject::tr("Hello World ! 喜爱Linux/熟悉python/精通C")); /* 中文不乱码 */
#else
Ui::HelloWorld ui;
ui.setupUi(&w);
#endif
w.show();
return a.exec();
}
QApplication a(argc, argv); 任何一个QT GUI程序都需要一个QApplication 对象
大家这里会非常奇怪我这里为啥要用一个if 0来作为选择开关,因为这里有两种办法去创建这个工程文件,如果走if 1部分代表的是手动写一些窗口的显示和标件 去显示Hello World ! 喜爱Linux/熟悉python/精通C ,如果走if 0部分代表的是我们手动用QT Designer创建界面文件。
我们点击界面文件下的helloworld.ui文件,然后再filter找到Label,然后按住鼠标左键将它拖到主设计去的界面上,在双击它进入编辑状态输入Hello World ! 喜爱Linux/熟悉python/精通C ,然后保存,我们在main.cpp文件就可以调用我们手动画图设置界面程序,需要包含#include
上面我们手动写代码和手动画图设计两者的效果都是一样的。
编译ui程序我们可以用命令行实现:uic -o ui_helloworld.h helloworld.ui
创建工程基本到此为止,以后的文章我也会从易到难由博文的形式讲解出来。QT是基于C++开发的,所以大家一定要有一点C++基础,这里给大家推荐基本学习QT的书籍:《QT Creator 快速入门》和《C++ Primer 中文版(第四版)》
参考博主:http://blog.csdn.net/goforwardtostep/article/details/52674579#comments
由于博主知识储备能力有限,如有错误,还望不吝指点。
@copyright Linux_Google