QT的语法(自我总结版本)

我们以学生管理系统来作为QT语法的介绍:

首先,介绍一下C++的构造函数

#include "mainwindow.h"
#include "ui_mainwindow.h"

//主窗口类
//构造函数 MainWindow::MainWindow

MainWindow::MainWindow(QWidget *parent)
    //初始化列表,用于初始化基类QMainWindow和成员变量ui。
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    //成员函数调用
    ui->setupUi(this);
    CreateDatabaseFunc();
    CreateTableFunc();
}

:QMainWindow(parent),ui(new Ui::MainWindow):这是初始化列表的一部分,用于调用基类QMainWindow的构造函数,并传递parent参数给它。这是多继承语言中常见的特性,确保基类的成员被正确初始化。

下面的使用new操作符创建Ui::MainWindow类的一个实例,并将其他地址赋给成员变量ui,Ui::MainWindow是通常由Qt Designer根据.ui文件自动生成的类,包含了所有用户界面元素的定义。

构造函数体,也就是上面的成员函数调用

{

        ui->setupUi(this);

        CreateDatabaseFunc();

        CreateTableFunc();

}

ui->setupUi(this);  调用ui的setupUi方法来设置主窗口的用户界面。setupUiUi_MainWindow类的一个方法,它根据.ui文件中涉及来创建和布局界面元素。

CreateDatabaseFunc(),直接调用CreateDatabaseFunc()方法,这个方法是作为自定义函数来使用,必须在下面先写好函数。(注意里面的逻辑是自己写的!)

//创建并打开SQLite数据库
void MainWindow::CreateDatabaseFunc()
{

    //1、添加数据库驱动
    sqldb=QSqlDatabase::addDatabase("QSQLITE");

    //2、设置数据库名称
    sqldb.setDatabaseName("studentmis.db");

    //3、打开数据库是否成功
    if(sqldb.open()==true)
    {
        //显示相应的消息框
        QMessageBox::information(0,"正确","数据库打开成功",QMessageBox::Ok);
    }
    else
    {
        QMessageBox::information(0,"错误","数据库打开失败",QMessageBox::Ok);
    }


}

类似上面的代码。请注意,只有你需要(一运行代码就执行的函数)才放到成员函数里。比如创建数据库和数据表的函数就放到成员函数里。而像查询函数、删除函数就不用放进去。因为你又不可能一进去就执行这些函数。

析构函数

在Qt中,析构函数用于在对象生命周期结束时进行清理工作。它是一个特殊的成员函数,当对象被销毁时自动调用,以释放对象所占用的资源,防止内存泄漏和其他资源泄露问题。

MainWindow::~MainWindow()

{

        delete ui;

}

  • MainWindow::~MainWindow():这是析构函数的声明,~表示这是一个析构函数,MainWindow是类名。析构函数没有返回类型,也没有参数。

相关推荐

  1. QT语法自我总结版本

    2024-07-13 16:52:03       23 阅读
  2. Linux: 设置qmakeQt版本

    2024-07-13 16:52:03       46 阅读
  3. 关于Qt安装与版本更换

    2024-07-13 16:52:03       36 阅读
  4. C语言技巧总结自用

    2024-07-13 16:52:03       51 阅读
  5. Qt 总结

    2024-07-13 16:52:03       27 阅读
  6. Qt6兼容Qt5遇到问题总结

    2024-07-13 16:52:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 16:52:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 16:52:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 16:52:03       62 阅读
  4. Python语言-面向对象

    2024-07-13 16:52:03       72 阅读

热门阅读

  1. React有哪些应用场景

    2024-07-13 16:52:03       23 阅读
  2. 设计模式——多例模式(23种之外)

    2024-07-13 16:52:03       25 阅读
  3. Redis 中的跳跃表(Skiplist)基本介绍

    2024-07-13 16:52:03       22 阅读
  4. python的面向对象编程

    2024-07-13 16:52:03       22 阅读
  5. 单元测试有什么好处呢?

    2024-07-13 16:52:03       22 阅读
  6. Git使用介绍教程

    2024-07-13 16:52:03       20 阅读
  7. Python 使用总结之 docx 添加图片设置图片大小详解

    2024-07-13 16:52:03       24 阅读