#include <QMainWindow>
QMainWindow* GetMainWindow() {
for(QWidget *widget: qApp->topLevelWidgets())
if (auto mainWindow = qobject_cast<QMainWindow*>(widget))
return mainWindow;
return nullptr;
}#pragma once
#include <QObject>
#include <functional>
template<typename T>
T *findOrCreateChild(QObject* parent, std::function<T*()>&& creator) {
T *child = parent->findChild<T*>();
if(!child) {
child = creator();
}
return child;
}