02——驾校科目一考试系统——新建项目

简介: 创建QT双击打开QT编译器

创建QT

双击打开QT编译器

244763eeee5b466993fe5bb6e5dec17a.png

选择新建文件或项目

546f02a8f0464258aa6d0e33444ac14e.png

选择Application后再选择QT的桌面应用程序后点击Choose

e05fb433a10b400d83efde5c4e42f139.png

注意:项目名称不能出现中文汉字或者是空格,然后下一步

8477c38ffe7040a58059455d97c7ee00.png

选择MinGW编译组件,下一步。

8c1c991b71a64dc98039e25fbdbae61a.png

编辑类信息,因为这是一个封路窗口的实现。我们就起名:LoginDialog。然后选择对话框类作为基类。本次选择勾选创建界面模式,后期会使用纯代码来进行创建的。下一步。

2dce4a5d27084b308dda9b9ca1527218.png

将会生成的文件。完成

1c5ca8c34a744cc79a0cc8987b3ca276.png

创建的QT基本信息

整体结构如下:

f5f2dddb8672446495950aff9d089dd1.png

.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

680960bd86a54875ba793f3384a5e527.png

.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


58af577a99194632be7215ea1ebb23bd.png


.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;
}

6c67d9354c8a46ee83acbf9b68a048d5.png

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(点击了最小化按钮)
     *          最小化动作;
     *      ...
     * }
     *
     */
}

ea919c00cd1746e891503998594d8d32.png

.ui

双击 .ui文件会发现,界面变了。变成了设计模式。如下图所示:

afb9d8f5972e4efdb0b63be62d15311e.png

运行程序

67471196b6e44be09c256d8b63a77801.png

运行结果

f680a56566f844a886cfcfb26ee21429.png

下一篇预告

驾校科目一考试系统——实现登录界面。

目录
相关文章
|
Java 关系型数据库 MySQL
【实训项目】基于JavaWeb的图书销售购物系统
【实训项目】基于JavaWeb的图书销售购物系统
173 0
|
7月前
|
SQL 编解码 Java
图书馆信息管理系统(项目实现)
图书馆信息管理系统(项目实现)
|
存储 Java 关系型数据库
JavaWeb期末项目 图书馆管理系统
JavaWeb期末项目 图书馆管理系统
192 1
|
7月前
|
设计模式
03——驾校科目一考试系统——登录界面(2)
运行项目——成功添加背景图 缺点:背景图片盖住了登录界面。
111 2
|
7月前
|
设计模式 数据安全/隐私保护
03——驾校科目一考试系统——登录界面(1)
双击ui文件进入设计模式。 想要把我们的登录窗口做成什么样的效果呢?理想效果图如下所示:用户需要一个账号和密码输入。最后还需要给用户两个按钮:一个登录按钮,一个取消按钮。
146 2
|
7月前
11驾校科目一考试系统——发布项目
发布项目   当我们编写完项目之后就需要发布项目 。就需要发布项目了。一般发布项目的话我们会把所有需要的文件都放在一个文件夹里面,这样的话就更方便。有时候文件过多的话,有可能会有很多的子文件夹,我们先把功能工作目录设置一下,因为当前的工作目录是debug或者release,导致咱们在读取数据文件的时候需要相对路径的话还需要上一级目录去寻找。如下图所示。
46 1
|
7月前
07——驾校科目一考试系统——布局题库
如果需要题库的资料(exam.txt)可以留下邮箱,博主会发给大家的。 总代码
133 1
|
7月前
|
设计模式 数据安全/隐私保护
|
Java 测试技术
员工管理系统
员工管理系统
142 2
|
7月前
10驾校科目一考试系统——窗口交互
回顾 之前的06~09都是把登录界面屏蔽了的,直接进入了考试界面,那么我们如何把粮价格页面进行交互呢?这是一个值得深思的问题。 目标:当用户点击登录验证成功之后,即可进入交互界面
57 0