manfred-exz
12/22/2017 - 5:34 AM

qt

	#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;
}