MainWindow::MainWindow(QString ac,int r,QSqlDatabase* db,QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); this->setCentralWidget(ui->stackedWidget); m_account = ac; m_role = r; m_db = *db; iniUI(); } MainWindow::~MainWindow() { delete ui; }
时间: 2023-06-10 21:08:28 浏览: 72
这是一个 C++ 的 Qt 项目中的 MainWindow 类的构造函数和析构函数。在构造函数中,传入了四个参数,分别是一个 QString 类型的变量 ac,一个 int 类型的变量 r,一个 QSqlDatabase 指针类型的变量 db,以及一个 QWidget 指针类型的 parent 变量。在函数体内,首先调用了 Ui::MainWindow 类的 setupUi() 函数,将主窗口的 UI 界面装载进来,然后将 UI 界面设置为主窗口的中心窗口。接着将传入的 ac、r、db 分别赋值给对象的成员变量 m_account、m_role、m_db。最后调用了 iniUI() 函数,用于初始化主窗口的其他相关操作。在析构函数中,调用了 delete ui,释放了 ui 指针所指向的内存空间。
相关问题
MainWindow::MainWindow(QString ac,int r,QSqlDatabase* db,QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow)
这是一个以 `ac` 为参数的 `QString` 对象,`r` 为 `int` 类型,`db` 为 `QSqlDatabase` 指针类型的构造函数。该构造函数属于 `MainWindow` 类,继承自 `QMainWindow`。在构造函数中,首先调用了 `QMainWindow` 的构造函数,然后创建了一个新的 `Ui::MainWindow` 对象。
#include "mainwindow.h" #include "ui_mainwindow.h" #include<QDebug> #include<QMessageBox> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //登录 stu = new studentt; connect(ui->pushButton,&QPushButton::clicked,this,&MainWindow::logon); connect(stu,&studentt::RturnLogon,this,[=]{ stu->hide(); this->show(); }); //注册 User_Registers = new registers; connect(ui->pushButton_2,&QPushButton::clicked,this,&MainWindow::registerss); connect(User_Registers,®isters::Show_Main,this,[=](){ this->show(); User_Registers->hide(); }); ui->lineEdit_2->setEchoMode(QLineEdit::Password); } MainWindow::~MainWindow() { delete ui; } //数据库链接 void MainWindow::opensql() { db = QSqlDatabase::addDatabase("QODBC"); db.setPort(3306); db.setDatabaseName("sql"); db.setUserName("root"); db.setPassword("123456"); db.open(); } void MainWindow::logon() { //"select * from username where username like '1122' and password like '221'" QString s = "select * from username where username like \'"+ui->lineEdit->text()+"\'"+"and password like \'"+ ui->lineEdit_2->text()+"\'"; opensql(); qDebug()<<s; //账号密码传到数据库执行 result = db.exec(s); if (result.next()) { //判断权限 n = result.value("auth").toInt(); this->hide(); stu->show(); connect(this,&MainWindow::User_Name,stu,&studentt::set_UserName); emit User_Name(ui->lineEdit->text()); } else { QMessageBox::about(this,"提示","账号或密码输入错误请重新输入"); ui->lineEdit->clear(); ui->lineEdit_2->clear(); } } void MainWindow::registerss() { User_Registers->show(); this->hide(); } 分析
这是一个 Qt 框架下的 C++ 程序,主要实现了用户登录和注册的功能。
程序中包含了一个主窗口 MainWindow 和两个子窗口 studentt 和 registers。其中,MainWindow 作为程序的主要窗口,用于用户登录和注册操作,studentt 和 registers 作为子窗口,分别用于实现已登录用户的操作和新用户的注册。
程序中使用了 Qt 的信号与槽机制来实现窗口之间的通信,例如登录操作时,点击登录按钮会触发 MainWindow 中的 logon 函数,该函数会将用户输入的账号和密码传递到数据库中进行验证,如果验证通过则将权限信息保存在变量 n 中,同时隐藏 MainWindow 窗口并显示 studentt 窗口,将用户名传递给 studentt 窗口。
程序中还包含了一些 Qt 的界面控件,例如 QLineEdit 和 QPushButton,用于实现用户输入和按钮点击等操作。
此外,程序中还包含了一个 opensql 函数,用于连接数据库。