如何在QT中打开子UI窗口时关闭父UI窗口

时间:2017-08-21 16:12:56

标签: c++ qt qt5

我的QT项目中有多个UI窗口。当新的UI窗口打开时,必须关闭先前的UI窗口,也就是说,在每个时间点只能打开一个UI窗口。怎么办呢?

1 个答案:

答案 0 :(得分:1)

之前我做过,我建议你不要关闭(删除)用户界面。

只需隐藏它,当你需要时再显示它。

检查此代码:

当用户点击查看第二个用户界面时:

void MainApp::on_btnSettings_clicked()
{
    this->hide();
    settingsManager = new SettingsManager(); // put this line in constructor
    settingsManager->show();
}
关闭窗体(或后退按钮)上的第二个UI上的

发出信号:

void SettingsManager::closeEvent(QCloseEvent *event)
{
    emit settingsBackToMainApp();
}

在主隐藏第二课并显示主要:

void MainApp::settingsBackToMainApp()
{
    settingsManager->hide();
    this->show();
}

将信号连接到插槽:

connect(settingsManager,&SettingsManager::settingsBackToMainApp,this,&MainApp::settingsBackToMainApp); // put this line in constructor