创建QT
双击打开QT编译器
选择新建文件或项目
选择Application后再选择QT的桌面应用程序后点击Choose
注意:项目名称不能出现中文汉字或者是空格,然后下一步
选择MinGW编译组件,下一步。
编辑类信息,因为这是一个封路窗口的实现。我们就起名:LoginDialog。然后选择对话框类作为基类。本次选择勾选创建界面模式,后期会使用纯代码来进行创建的。下一步。
将会生成的文件。完成
创建的QT基本信息
整体结构如下:
.pro文件
双击项目下的 .pro文件。pro其实是project的缩写。即 .pro文件是一个工程文件。当我们以后要打开QT的某些项目的时候就选择 .pro文件打开即可。详细介绍可以看图。
#------------------------------------------------- # # Project created by QtCreator 2022-06-15T00:14:53 # #------------------------------------------------- #表示Qt支持核心的图形用户界面的一个扩展库 QT += core gui #当前版本超过4的话加伤扩展库的支持 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets #描述的是项目的名字,有时候可能项目写完了,不喜欢这个项目的名字,这时候可以在这里对名字进行编辑和修改 TARGET = ExamSys #表示我们当初选择的时候选择的是应用程序 TEMPLATE = app # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as 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. #定义了QT的一个宏。表示 QT如果使用一些过时的API的话,编译器就会产生警告信息。没有这个宏使用过时API就不会产生警告信息 DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use 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 \ logindialog.cpp HEADERS += \ logindialog.h FORMS += \ logindialog.ui
.h与.cpp文件
.h
logindialog.h
#ifndef LOGINDIALOG_H #define LOGINDIALOG_H #include <QDialog> namespace Ui {//声明了一个 Ui的命名空间,里面有一个类 LoginDialog。和我们自定义的类名很像,但是不是一个类。要想知道具体是啥ctrl+左键 //注意:没有编译的话是看不了的,需要先编译。 class LoginDialog;//Ui_LoginDialog子类,用于描述登录窗口界面信息。 /*是在 .ui文件里的。 Ui_LoginDialog类是:描述登录窗口界面信息的一个类,是QT自动生成的,不用管。 namespace Ui { class LoginDialog: public Ui_LoginDialog {}; } // namespace Ui */ } class LoginDialog : public QDialog { Q_OBJECT //声明了一个宏。意义:表示当前的类支持:信号与槽的一种机制(后期会讲:不同对象里面的通信,如窗口A与窗口B进行通信。)。 //如果类里面没有声明这个宏,就不支持信号与槽。 //必须要继承自 QObject类才能使用信号与槽的机制 public: //构造与析构 //parent窗口指针,父窗口对象的指针 //如果parent为0或者NULL,表示当前窗口对象是个顶层窗口 //顶层窗口就是在任务栏可以找到的窗口 explicit LoginDialog(QWidget *parent = 0); ~LoginDialog(); private: //一个 ui指针。指向登录窗口信息的对象。以后所有的界面信息,包括控件信息都可以用过ui这个指针来进行访问。 Ui::LoginDialog *ui; }; #endif // LOGINDIALOG_H
.cpp
logindialog.cpp
#include "logindialog.h" #include "ui_logindialog.h" LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent), ui(new Ui::LoginDialog) { //setupUi初始化界面方法 ui->setupUi(this); } LoginDialog::~LoginDialog() { //析构进行自然回收 delete ui; }
main.cpp
#include "logindialog.h" #include <QApplication> int main(int argc, char *argv[])//程序的入口函数 { QApplication a(argc, argv);//应用程序类,建立了一个对象a LoginDialog w; //w对象就是登录窗口对象 w.show(); //show方法就是对象框显示出来的功能。 return a.exec(); //exec的作用就是使对象进入消息循环类似于下面的例子。 /* * 死循环让程序一直运行,生命循环,消息循环 * while(1) * { * if(点击x按钮) * break; * if(点击了最小化按钮) * 最小化动作; * ... * } * */ }
.ui
双击 .ui文件会发现,界面变了。变成了设计模式。如下图所示:
运行程序
运行结果
下一篇预告
驾校科目一考试系统——实现登录界面。