打开Qt Creator创建一个名为hello的Qt Gui Application工程。
注:这里所有文件都是自动生成的且除了main.cpp做了更改以外其它文件都未改动。
main.cpp
#include<QtGui>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
//设置QObjiect::tr()使用的字符集
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
QWidget* pWidget=new QWidget;
//创建一个QLabel对象并将该标签的父窗口部件设置为pWidget
QLabel label(pWidget);
label.setText(QObject::tr("同一个世界,同一个梦想!"));
//创建一个QPushButton对象并将父窗口部件设为pWidget
QPushButton *btn=new QPushButton(QObject::tr("关闭"),pWidget);
//创建一个垂直布局管理器 QVBoxLayout对象layout
QVBoxLayout *layout=new QVBoxLayout;
//将标签对象label和按钮对象btn放置在该管理器中
layout->addWidget(&label);
layout->addWidget(btn);
// 把垂直布局管理器layout添加到窗口部件对象pWidget中
pWidget->setLayout(layout);
//将“关闭”按钮btn的clicked()信号同窗口pWidget的close()槽关联起来
QObject::connect(btn,SIGNAL(clicked()),pWidget,SLOT(close()));
//显示窗口,并进入Qt应用程序事件循环
pWidget->show();
return app.exec();
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
hello.pro
#-------------------------------------------------
#
# Project created by QtCreator 2016-12-02T10:11:54
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = hello
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
注:
1、前5行文本是 qmake工具自动添加的注释文本,描述了该qmake工程文件是由qmake工具自动生成的,以及文件生成的时间和qmake工具的版本号。
2、变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的MakeFile文件。(qmake工具定义了5种模板)
-〉应用程序app:为建立一个Qt应用程序创建MakeFile文件;
-〉库lib:为建立应用程序库而创建MakeFile文件;
-〉子工程subdirs:为建立子目录下的目标文件创建一个MakeFile文件,子目录通过变量SUBDIRS指定(子目录下的工程文件也需要指出使用何种模板);
-〉VC应用程序vcapp:为Visual Studio生成一个应用程序,仅仅用于windows系统;
-〉VC库vclib:为Visual Studio生成一个应用程序库工程,仅仅用于windows系统;
3、变量TARGET描述了目标文件的名称,即生成的应用程序的名字。
-〉注:qmake工具自动生成的qmake工程文件采用默认方式(TARGET的值为空),即应用程序的名字采用工程文件hello.pro所在的文件夹的名字hello。
4、变量SOURCES选项告诉编译器,源代码文件的路径(相对于工程文件hello.pro的位置)及其文件名字。