打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项
弹出New Project对话框,选择Qt Widgets Application
向导会默认添加一个继承自CMainWindow的类,可以在此修改类的名字和基类。默认的基类有 QMainWindow、QWidget 以及 QDialog 三个,我们可以选择 QWidget(类似于空窗口),这里我们可 以先创建一个不带 UI 的界面,继续下一步
选择编译套件,继续下一步
添加一个空项目
选择【choose】进行下一步。设置项目名称和路径 —> 选择编译套件 --> 修改类信息 --> 完成(步骤同上),生成一个空项目。在空项目中添加文件:在项目名称上单击鼠标右键弹出右键菜单,选择【添加新文件】
弹出新建文件对话框
在此对话框中选择要添加的类或者文件,根据向导完成文件的添加。
.pro 文件用于生成可执行文件,.h 存放头文件、类等,widget.cpp 中主要存放.h 文件中函数的实现过程,main.cpp 主要是主程序
1、.pro文件
QT += core gui //模块的名字
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
//源文件
SOURCES += \
main.cpp \
mainwindow.cpp
//头文件
HEADERS += \
mainwindow.h
//窗口设计文件
FORMS += \
mainwindow.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。.pro文件的写法如下:
从“#”开始,到这一行结束。
TARGET = QtDemo
HEADERS += include/painter.h
FORMS += forms/painter.ui
SOURCES += sources/main.cpp sources/painter.cpp
RESOURCES += qrc/painter.qrc
这条语句的含义是,如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。
CONFIG用来告诉qmake关于应用程序的配置信息。
CONFIG += c++11 //使用c++11的特性
在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。
2、main.cpp
main 入口函数中
#include "mainwindow.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
解释:
1.Qt 系统提供的标准类名声明头文件没有.h 后缀
2.Qt 一个类对应一个头文件,类名就是头文件名
3.QApplication 应用程序类
管理图形用户界面应用程序的控制流和主要设置。
是 Qt 的整个后台管理的命脉它包含主事件循环,在其中来自窗口系统和其它资源的所有事 件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。
对于任何一个使用 Qt 的图形用户界面应用程序,都正好存在一个 QApplication 对象,而 不论这个应用程序在同一时间内是不是有 0、1、2 或更多个窗口。
4.a.exec()
程序进入消息循环,等待对用户输入进行响应。这里 main()把控制权转交给 Qt,Qt 完成事件处 理工作,当应用程序退出的时候 exec()的值就会返回。在 exec()中,Qt 接受并处理用户和系统 的事件并且把它们传递给适当的窗口部件。
main.cpp 文件中有一句代码
Widget w;
Widget 类实例化的对象 w,此时会调用构造函数,对如果对当前 Widget 类中的构造函数中写入设置的属性或者添 加一些控件,当实例化对象是就会调用构造函数,从而实现想要达到的目的,并且这样做也不会使得主函数中有 多余的代码
所以一般窗口的属性和添加控件以及对控件的操作都会在类的构造函数中书写
通常在安装 Qt 时都会自带一个 Qt 助手,方便去查询 Qt 中的要使用的类和函数等 一般会在开始菜单的 Qt 目录中,一般叫做 Assista
点击进入后可以看到所呈现的内容
一般点击索引后即可查找相应的内容
由于现在设置的是窗口的属性,Widget 是自定义的类,所以要设置一些默认属性需要在其父类中寻找,所以在 Qt 手册中搜索 QWidget 即可找到一些要寻找的设置属性的函数
如果当前类中没有所需要的函数,可以从当前类的父类中再去寻找
设置窗口属性代码如下:
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//一般对窗口的信息的设置都放在构造函数当中
//****************设置窗口属性*******************
//设置窗口标题
this->setWindowTitle("第一个窗口");
//设置窗口大小,设置完毕后窗口还可以拉伸
this->resize(400, 200);
//设置固定大小,设置完毕后窗口大小无法再改变
this->setFixedSize(800, 400);
}
Widget::~Widget()
{
}