Название: Преобразование centralWidget в QMdiArea средствами QtCreator Отправлено: __Heaven__ от Ноябрь 12, 2014, 11:11 Привет, друзья!
Каким образом можно сделать преобразование центрального виджета главного окна в MDI область через редактор форм? Пока что вижу только 2 варианта: 1) Создать свой класс и преобразовать в него 2) Положить на центральный виджет QMdiArea и применить компоновку Чисто перегнать QWidget->QMdiArea Название: Re: Преобразование centralWidget в QMdiArea средствами QtCreator Отправлено: carrygun от Ноябрь 12, 2014, 11:18 Он же - обязательная часть лэйаута для QMainWindow. Тут лучше всего 2й вариант.
Название: Re: Преобразование centralWidget в QMdiArea средствами QtCreator Отправлено: __Heaven__ от Ноябрь 12, 2014, 11:30 Он же - обязательная часть лэйаута для QMainWindow Да, но когда мне было необходимо было сделать свой класс центральным я просто преобразовывал центральный виджет в него (в свой класс) с указанием заголовочного файла. В итоге в дереве под центральным виджетом ничего не было.Когда я использую вариант 2 у меня в дереве имеется QWidget centralWidget и уже в нем сидит QMdiArea. Таким образом получается, что у меня имеется лишний элемент (QWidget centralWidget) Конечно, это все не очень критично. Тут больше играет роль любопытство. Можно ещё третий вариант: Код Но это мне кажется небольшим извращением. Название: Re: Преобразование centralWidget в QMdiArea средствами QtCreator Отправлено: gil9red от Ноябрь 12, 2014, 13:28 centralWidget при создании QMainWindow равен 0, и когда вы кладете виджет через setCentralWidget, то просто указатель переписываться, так что вы там будете преобразовывать не ясно :)
Так что только вариант второй, и centralWidget лишним не будет, ибо он и есть QMdiArea :) Проверка: Код: QMainWindow ww; Консоль: QObject(0x0) QPushButton(0x22fdcc) Название: Re: Преобразование centralWidget в QMdiArea средствами QtCreator Отправлено: __Heaven__ от Ноябрь 12, 2014, 14:20 centralWidget при создании QMainWindow равен 0, и когда вы кладете виджет через setCentralWidget, то просто указатель переписываться, так что вы там будете преобразовывать не ясно :) Я пользуюсь редактором форм. Код
Цитировать QWidget(0x14dc4208, name = "centralWidget") Название: Re: Преобразование centralWidget в QMdiArea средствами QtCreator Отправлено: gil9red от Ноябрь 12, 2014, 14:43 А дизайнер генерирует класс окна, в котором выделяет память под centralWidget, а после кладет QMdiArea в компоновщик centralWidget.
Такой вот механизм и, похоже, ничего с этим неподелаешь... :) Название: Re: Преобразование centralWidget в QMdiArea средствами QtCreator Отправлено: __Heaven__ от Ноябрь 12, 2014, 15:26 А дизайнер генерирует класс окна, в котором выделяет память под centralWidget, а после кладет QMdiArea в компоновщик centralWidget. А самое дурацкое, что центральный виджет заменить на свой класс можно, а на стандартный нет. Пишет, мол существует такой уже.Такой вот механизм и, похоже, ничего с этим неподелаешь... :) |