时间有限,本篇文章只介绍基本思路,对于内部程序的编写及运用,不涉及!
一、创建txt文件
首先创建一个txt文件,除满足以下某些条件,名字随意,路径随意。
1、最好纯英文,中文路径及名称可能编译错误
2、该路径下不含其他头文件和cpp文件
打开txt,编写程序代码:
#include <QApplication>
#include <QDialog>
#include <QLabel>
int main(int n,char *m[])
{
QApplication a(n,m);
QDialog d;
QLabel label(&d);
label.setText("this is a label message!");
label.adjustSize();
d.resize(200,100);
d.show();
return a.exec();
}
保存关闭
二、打开终端,cd到目录,准备qmake
终端输入
$ qmake -v
则编译路径正确
否则
$ vim ~/.bash_profile
//.bash_profile写入以下语句
export QTDIR=/Users/yucheng/Qt5.14.2/5.14.2/clang_64 //注意这里是你自己的Qt安装路径
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH
//保存退出
//查看qmake版本,如果显示当前版本,即完成
$ qmake -v
三、执行qmake、make
cd到目标路径后,路径下只有ycc.h,多文件编译后文会涉及。
执行
$ qmake -project
它会在目录下自动生成.pro文件,pro文件不用做过多介绍吧。
打开pro文件,在最后一行添加语句:
greaterThan(QT_MAJOR_VERSION, 4):QT+=widgets
保存关闭
执行
$ qmake
目录下会出现Makefile文件
好的 ,继续执行
$ make
会生成一个工程文件和一个.o文件
四、运行程序
双击工程文件,即可运行
五、多文件程序
前文中的程序只有一个.cpp文件,但是多文件的编译方法同理,方法步骤一样,只需要文件都在此目录下,执行qmake -project
即可生成pro文件,打开pro文件,我们可以看到
# Input
栏目下就是参与编译的文件。
实例
- widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QLabel>
class widget : public QWidget
{
Q_OBJECT
public:
widget(QWidget * parent = nullptr);
~widget();
};
#endif
- widget.cpp
#include "widget.h"
widget::widget(QWidget *parent)
:QWidget(parent)
{
resize(400,300);
QLabel *label = new QLabel(this);
label->setText("this is a class message!");
label->adjustSize();
label->show();
}
widget::~widget()
{
}
- yc.cpp
#include <QApplication>
#include "widget.h"
int main(int n,char *m[])
{
QApplication a(n,m);
widget w;
w.show();
return a.exec();
}
三个文件
执行
$ qmake -project
打开pro文件加入 greaterThan(QT_MAJOR_VERSION, 4):QT+=widgets
$ qmake
$ make
完成后