Добрый вечер , у меня такая проблема .
хочу сделать mdi sub window не просто QTextEdit а ui формы , через подгрузку QUiLoader
есть пример с mdi sub window
class MdiChild : public QTextEdit
в общем все хорошо и поиск он тоже все понятно делает по открытым subwindows
foreach (QMdiSubWindow *window, mdiArea->subWindowList()) {
MdiChild *mdiChild = qobject_cast<MdiChild *>(window->widget());
if (mdiChild->currentFile() == canonicalFilePath)
return window;
}
вопрос.
у меня есть интерфейс
class IMditable : public QWidget
{
Q_OBJECT
public:
IMditable(QWidget* parent ) : QWidget(parent) {}
}
и есть класс реализации
class QDialogMdiLogin : public IMditable
{
Q_OBJECT
public:
QDialogMdiLogin(QWidget* parent);
}
QWidget* _uiform = loadUiFrom(QString("forms/dloginform.ui"));
QDialogMdiLogin* val= new QDialogMdiLogin(_uiform);
QMdiSubWindow* win = mdiArea->addSubWindow(val);
win->show();
реализация такая, загружаю ui форму , внутри класса ее инициализирую.
QDialogMdiLogin::QWidget получает форму отображения
и при запуске, форма не видеться , пустой виджет, НО если я делаю mdiArea->addSubWindow(val->parentWidget());
то все заработало, но положение это не поправляет, так как я в addSubWindow запихиваю не интерфейс
а просто виджет, то и найти его в списке subWindowList не возможно, отделить от других.
Как возможно это победить ? ведь QDialogMdiLogin наследник от QWidget не могу понять