J'ai plusieurs fenêtres d'interface utilisateur dans mon projet QT. Lorsqu'une nouvelle fenêtre d'interface utilisateur s'ouvre, la fenêtre d'interface utilisateur précédente doit être fermée, c'est-à-dire qu'à chaque instant, une seule fenêtre d'interface utilisateur doit être ouverte. Comment cela peut-il être fait?Comment fermer la fenêtre de l'interface utilisateur parent lorsque la fenêtre de l'interface utilisateur enfant est ouverte dans QT
1
A
Répondre
1
Je l'ai fait avant et je vous suggère de ne pas fermer (supprimer) l'interface utilisateur.
il suffit de le cacher et quand vous en avez besoin montrer à nouveau.
vérification de ce code:
lorsque l'utilisateur clique pour voir seconde interface utilisateur:
void MainApp::on_btnSettings_clicked()
{
this->hide();
settingsManager = new SettingsManager(); // put this line in constructor
settingsManager->show();
}
sur la deuxième interface utilisateur sur le formulaire de fermeture (ou bouton de retour) émettent un signal:
void SettingsManager::closeEvent(QCloseEvent *event)
{
emit settingsBackToMainApp();
}
sur Main cacher la deuxième classe et le spectacle principal:
void MainApp::settingsBackToMainApp()
{
settingsManager->hide();
this->show();
}
signal de connexion à fente:
connect(settingsManager,&SettingsManager::settingsBackToMainApp,this,&MainApp::settingsBackToMainApp); // put this line in constructor
Jetez un oeil à QStackedWidget car il peut s'adapter à votre cas d'utilisation et préciser votre question sinon. – Schuh