J'ai une fenêtre principale Qt qui fera apparaître une boîte de dialogue qui a un bouton OK et Annuler. Cette boîte de dialogue a un simple bouton qui demande à un utilisateur un nombre qui devrait être retourné à la fenêtre principale quand OK ou Annuler est pressé (pour annuler, il renverra juste -1).Comment puis-je faire Qt dialogue obtenir des informations tout en verrouillant la fenêtre principale de l'utilisateur?
Je pensais à l'aide du code dans un signal mainwindow.cpp comme ceci:
void mainWindow::slot_openNumberDlg(){
// Create a new dialog
numberDlg dlg(this);
// Show it and wait for Ok or Cancel
if(dlg.exec() == QDialog::Accepted){
return;
}
}
Mais comment pourrais-je retourner la valeur de la fileuse dans la boîte de dialogue de retour à la fenêtre principale si elle est détruite lorsque le bouton est pressé?
J'ai aussi pensé à une solution alternative où j'initialiser la boîte de dialogue dans le constructeur de mainWindow, mais il n'a pas été représenté jusqu'à ce qu'un signal activé une fente dans mainwindow.cpp comme ceci:
// Create as pointer in main.h:
numberDlg *dlg;
// Initialize pointer and setup listener in constructor (main.cpp):
mainWindow::mainWindow(){
dlg = new numberDlg();
QObject::connect(dlg, SIGNAL(sig_retVal(int)), ui->widget, SLOT(slot_showNum(int)));
}
// Make a function to handle show/close:
void mainWindow::slot_numberOpenClose(bool trigger){
if(trigger){
dlg->show();
} else {
dlg->close();
}
}
Le code ci-dessus serait en mesure d'envoyer le numéro de spinner de la boîte de dialogue à mainWindow en utilisant un signal/slot, mais il ne sera pas verrouiller MainWindow. Je ne veux pas que l'utilisateur continue à utiliser MainWindow tant que la boîte de dialogue n'a pas été acceptée ou rejetée.
Des idées sur la façon dont je peux verrouiller la fenêtre principale et renvoyer un numéro à la boîte de dialogue principale fermer?