Приветствую всех,
В моем приложении QT у меня есть несколько экземпляров QMainWindow.Я отслеживаю открытые объекты QWindow в объекте Application Context;
В какой-то момент, когда щелкают по элементу Menu, я хочу пройти через все эти QWindows и проверить, какое Window активно, и выполнить некоторые операции.
Пожалуйста, обратитесь к следующему фрагменту кода:
//Just a confirmation dialog
QMessageBox msgBox(this->getMainWindow());
msgBox.setText("This will discard existing project");
msgBox.setInformativeText("All Contour data and Volume data will be discarded");
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Ok);
if(msgBox.exec()==QMessageBox::Cancel)
{
return
}
//This is where I check the active window.
QList<MainWindow*> lst= applicationContext.getOpendedWindows();
for(i=0;i<lst.size();i++)
{
MainWindow *win=lst.value(i);
//Check if this is the active window
if(win.isActive()){ // tried (win==QApplication::activeWindow()) also
//DO SOMETHING with 'win' object
}
}
}
Эта проверка работает нормально, когда я не показываю диалоговое окно подтверждения перед проверкой.То есть, когда я закомментирую строку «msgBox.exe ()», я могу найти активное окно из списка.
Меняет ли отображение QMessageBox сфокусированное окно?
Любые советына этом?
Заранее спасибо,
Уманга