Qt登陆窗口(查询数据库)

该博客介绍了如何使用Qt框架构建一个简单的登录界面,连接SQLite数据库进行用户身份验证。通过创建QDialog窗口,设置QLabel、QLineEdit和QPushButton组件,实现用户输入的登录名和密码与SQLite数据库中student表的数据进行匹配,成功则显示欢迎信息,失败则给出警告。
摘要由CSDN通过智能技术生成

数据库:Sqlite3

数据库名:student

表名:student

表的结构:


使用的工具是:SQLite Database Browser

 

注意:记得把创建的数据库文件student放到对应的目录(QT4.7是在login-build-desktop下)

 

新建工程login

跳到ui界面,放置QLabel和QViewTable两个组件

 


新建类loginDialog,继承自QDialog


logindialog.h:

Qt 中使用数据库需要使用到 QSqlDatabase 类。要在多窗口中使用数据库,可以在程序启动时创建一个全局的 QSqlDatabase 对象,然后在每个窗口中使用该对象来进行数据库操作。具体步骤如下: 1. 在 main.cpp 中创建全局的 QSqlDatabase 对象,并在程序启动时打开数据库连接: ```c++ #include <QApplication> #include <QtSql> QSqlDatabase db; int main(int argc, char *argv[]) { QApplication a(argc, argv); // 打开数据库连接 db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("mydatabase.db"); if (!db.open()) { qDebug() << "Failed to open database."; return -1; } // 创建主窗口并显示 MainWindow w; w.show(); return a.exec(); } ``` 2. 在每个窗口中使用全局的 QSqlDatabase 对象来进行数据库操作: ```c++ #include <QMainWindow> #include <QtSql> class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: QSqlTableModel *model; private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; }; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 创建一个 QSqlTableModel 来显示数据库内容 model = new QSqlTableModel(this, db); model->setTable("mytable"); model->select(); // 将 QSqlTableModel 显示在 QTableView 中 ui->tableView->setModel(model); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { // 在按钮点击事件中插入一条数据 QSqlQuery query(db); query.prepare("INSERT INTO mytable (name, age) VALUES (:name, :age)"); query.bindValue(":name", "John"); query.bindValue(":age", 30); query.exec(); // 刷新 QSqlTableModel 显示的数据 model->select(); } ``` 在上面的示例中,我们在主窗口中创建了一个 QSqlTableModel,并将其显示在 QTableView 控件中。在按钮点击事件中,我们使用全局的 QSqlDatabase 对象来插入一条数据,并刷新 QSqlTableModel 显示的数据。在其他窗口中也可以使用同样的方法来访问全局的 QSqlDatabase 对象来进行数据库操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值