代码修改Qt中主界面的Manage窗口组件的registe按钮点击后关闭users界面#define MANAGE_H#include QWidgetnamespace Ui class Manage;class Manage public QWidget Q_OBJECTpublic explicit ManageQWidget parent = nullptr; ~Mana
要实现点击Manage窗口的registe按钮后关闭users界面,可以在Manage类中添加一个槽函数closeUsersWindow(),在该槽函数中关闭users界面。具体步骤如下:
- 在manage.h头文件中添加closeUsersWindow()函数的声明:
private slots:
void closeUsersWindow();
- 在manage.cpp源文件中实现closeUsersWindow()函数,并在registe按钮的点击事件中调用该函数:
void Manage::closeUsersWindow()
{
QWidget *usersWindow = qApp->topLevelWidgets().at(1);
usersWindow->close();
}
Manage::Manage(QWidget *parent) :
QWidget(parent),
ui(new Ui::Manage)
{
ui->setupUi(this);
connect(ui->loginon, &QPushButton::clicked, this, [=]() {
loginUser(ui->username->text(), ui->password->text());
});
connect(ui->registe, &QPushButton::clicked, this, [=]() {
registerUser();
closeUsersWindow();
});
}
- 在users.cpp源文件中修改closeWidget()函数的名称为closeEvent(),并在该函数中添加关闭事件的处理:
void users::closeEvent(QCloseEvent *event)
{
QMessageBox::StandardButton button;
button = QMessageBox::question(this, tr("Exit"), tr("Do you really want to exit?"), QMessageBox::Yes | QMessageBox::No);
if (button == QMessageBox::Yes) {
event->accept();
} else {
event->ignore();
}
}
这样,当点击Manage窗口的registe按钮时,会先调用registerUser()函数打开Reg窗口,然后调用closeUsersWindow()函数关闭users界面。
原文地址: https://www.cveoy.top/t/topic/iw8u 著作权归作者所有。请勿转载和采集!