В какой-то части моего проекта я хочу получить ссылку на окно из списка открытых окон. Таким образом, я делаю так:Как получить QWidget из списка открытых окон
QWidget* WindowUtil::mainWindow() {
QWidget* main_window = nullptr;
for(QWidget *window: QApplication::allWidgets()){
if(QString(window>metaObject()->className()).contains("Home")){
main_window = window;
break;
}
}
return main_window;
}
WindowUtil
является класс моего проекта и mainWindow()
статический метод.
Однако это решение не работает. Компилятор говорит:
error: incomplete type 'QApplication' used in nested name specifier
for(QWidget *window : QApplication::allWidgets()){
^
И я застрял здесь.
Попробуйте добавить '#include' в файл, где 'WindowUtil :: MainWindow()' определено. –
Sergey
Теперь это сработало;) –
Я использовал 'QApplication' в другом месте и не нуждался в #include. Возможно, это потому, что этот класс WindowUtil не имеет отношения к QT. я прав ? –