#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
createLoginWidget();
createMainWidget();
createWuyefeeWidget();
createParkingWidget();
createRepairWidget();
}
void MainWindow::createLoginWidget()
{
loginWidget = new QWidget();
usernameLabel = new QLabel("用户名:");
usernameLineEdit = new QLineEdit();
passwordLabel = new QLabel("密码:");
passwordLineEdit = new QLineEdit();
passwordLineEdit->setEchoMode(QLineEdit::Password);
loginButton = new QPushButton("登录");
QVBoxLayout *loginLayout = new QVBoxLayout();
loginLayout->addWidget(usernameLabel);
loginLayout->addWidget(usernameLineEdit);
loginLayout->addWidget(passwordLabel);
loginLayout->addWidget(passwordLineEdit);
loginLayout->addWidget(loginButton);
loginWidget->setLayout(loginLayout);
QObject::connect(loginButton, &QPushButton::clicked, [&]() {
QString username = usernameLineEdit->text();
QString password = passwordLineEdit->text();
QSqlQuery query;
query.prepare("SELECT COUNT(*) FROM users WHERE username = :username AND password = :password");
query.bindValue(":username", username);
query.bindValue(":password", password);
if (query.exec() && query.next() && query.value(0).toInt() > 0) {
loginWidget->close();
mainWidget->show();
} else {
QMessageBox::warning(nullptr, "错误", "用户名或密码错误");
}
});
}
void MainWindow::createMainWidget()
{
mainWidget = new QWidget();
tabWidget = new QTabWidget();
tabWidget->addTab(wuyefeeWidget, "物业缴费");
tabWidget->addTab(parkingWidget, "停车管理");
tabWidget->addTab(repairWidget, "维修管理");
QVBoxLayout *mainLayout = new QVBoxLayout();
mainLayout->addWidget(tabWidget);
mainWidget->setLayout(mainLayout);
}
void MainWindow::createWuyefeeWidget()
{
wuyefeeWidget = new QWidget();
calendarWidget = new QCalendarWidget()
不知道你这个问题是否已经解决, 如果还没有解决的话:[1].
https://bbs.csdn.net/topics/392254741都没看到你数据库连接和打开的代码逻辑。你调试下看看具体是运行到哪里崩溃,感觉还是数据库的问题。