使用纯代码编写程序来了解项目的编译过程
这次我们创建一个空的项目,然后在项目中添加 main.cpp 文件。
代码如下
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <QApplication> #include <QDialog> #include <QLabel> int main(int argc, char *argv[]){ QApplication a(argc, argv); QDialog w; QLabel label(&w); label.setText("Hello World!"); w.show(); return a.exec(); } |
代码的前三句是引入三个类的头文件,然后写了一个 main 函数作为程序的入口,这个函数有两个参数是用来接收命令行参数的,然后创建了一个应用、一个对话框、一个标签,在创建Label的时候把对话框的对象作为参数传递给了label,意思就是对话框是label父窗口,就是把这个label添加到对话框上,然后设置标签的文字,显示对话框。但是我们想输出中文是有问题的,需要改一下程序代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <QApplication> #include <QDialog> #include <QLabel> #include <QTextCodec> //这里提供了文本编码转换功能 int main(int argc, char *argv[]){ QApplication a(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QDialog w; w.resize(400, 300); //设置对话框大小 QLabel label(&w); label.move(120, 120); //设置label的位置 label.setText(QObject::tr("Hello World! 你好世界!")); w.show(); return a.exec(); } |
这里顺便介绍两个快捷键:Ctrl+空格 强制代码补全(可能会与输入法快捷键冲突);将鼠标放在类名上按 F1 能够快速产看帮助文档。
使用命令行编译运行程序
在命令行中编译(最好先配置全局的环境变量),我们先把 main.cpp 拷贝到一个单独地文件夹中,打开 cmd 切换到 main.cpp 所在的目录。
然后 qmake -project 其实就是创建一个 pro的工程,这时候就可以看到目录中生成了一个 pro 文件,下面接着输入 qmake 就会生成用于编译的 Makefile 文件,再输入 make 就是编译程序,编译完成之后就会在 debuge 目录中生成 hello.exe 的可执行文件。
补充:qmake是Qt提供的编译工具,可以生成与平台无关的 pro 工程文件,然后生成与平台无关的 Makefile 文件,最后使用 make 通过读入 Makefile 文件来执行编译工作,为每一个源文件都生成对应的 .o 文件,然后将这些文件进行链接最终生成可执行文件。
使用UI视图文件布局
先创建一个设计师界面,也就是ui界面
选择没有按钮的对话框
然后如图点击左下角的锤子按钮编译工程,然后点击上面的过滤按钮取消隐藏生成文件
然后我们的 main.cpp 就可以改成这样
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <QApplication> #include <QDialog> #include <QLabel> #include <QTextCodec> //引入系统类的头文件 #include "ui_hellodialog.h" //引入工程类的头文件 int main(int argc, char *argv[]){ QApplication app(argc, argv); QDialog w; Ui::Dialog ui; ui.setupUi(&w); w.show(); return app.exec(); } |
运行就得到了我们想要的效果。当然我们也可以使用命令行来编译ui文件,只需在ui文件所在目录下执行以下命令即可
1 2 3 4 |
uic -o ui_hellodialog.h hellodialog.ui //生成ui的 .h 文件 qmake -project qmake make |
代码请查看:http://git.oschina.net/zcb1603999/LearningQt
转载请注明:怼码人生 » Qt入门学习之HelloWorld程序源码及编译过程详解