我们以学生管理系统来作为QT语法的介绍:
首先,介绍一下C++的构造函数
#include "mainwindow.h"
#include "ui_mainwindow.h"//主窗口类
//构造函数 MainWindow::MainWindowMainWindow::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方法来设置主窗口的用户界面。setupUi
是Ui_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
是类名。析构函数没有返回类型,也没有参数。