要实现点击Manage窗口的registe按钮后关闭users界面,可以在Manage类中添加一个槽函数closeUsersWindow(),在该槽函数中关闭users界面。具体步骤如下:

  1. 在manage.h头文件中添加closeUsersWindow()函数的声明:
private slots:
    void closeUsersWindow();
  1. 在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();
    });
}
  1. 在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界面。

代码修改Qt中主界面的Manage窗口组件的registe按钮点击后关闭users界面#define MANAGE_H#include QWidgetnamespace Ui class Manage;class Manage public QWidget Q_OBJECTpublic explicit ManageQWidget parent = nullptr; ~Mana

原文地址: https://www.cveoy.top/t/topic/iw8u 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录