Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QMainWindow
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
wdefik
Возможно ли после того, как в QMainWindow методом setMainWidget(QWidget*) уже установлен главный виджет, назначить ему в качестве главного виджета другой, а в общем случае просто жонглировать виджетами, причем так, чтобы все было корректно? :)

или, может быть, есть альтернативные подходы? :)



kwisp
wdefik,
что за метод такой setMainWidget(QWidget*) ?
не нашёл такого в документации
по qt 4.6
ты имел ввиду
setCentralWidget ( QWidget * )
или
setMenuWidget ( QWidget * )
?
однако в обоих случаях, главное окно становится хозяином/владельцем устанавливаемых виджетов и удаляет их(освобождает память по указателю) в соответствующее время - обычно при собственном освобождении памяти.

можно попробовать уставливать виджет, а когда нужно установить другой
менять ему хозяина/владельца к примеру на 0 и затем в ручную освобождать память,
затем устанавливать другой.
написать тест и узнать можно так или нет.
пока других способов мне не видно.
wdefik
Да, setCentralWidget(QWidget*) - прошу прощения, ночь, утсалость.. :)

Да, кажется, такой вариант приемлем. спасибо :)
kwisp
wdefik,
ты пробовал или наугад сказал что вариант приемлем?
igor_bogomolov
wdefik, может в качестве центрального виджета установить QStackedWidget
kwisp
Цитата(kwisp @ 3.4.2010, 9:54) *
пока других способов мне не видно.
Цитата(igor_bogomolov @ 3.4.2010, 16:45) *
может в качестве центрального виджета установить QStackedWidget

во! увидел
wdefik
Цитата(kwisp @ 3.4.2010, 14:38) *
wdefik,
ты пробовал или наугад сказал что вариант приемлем?


Для простейшего приложения ничего страшного не происходит.
Мой проект немного разросся, так что я пока не могу сказать как это работает для более сложных вариантов.

Цитата(igor_bogomolov @ 3.4.2010, 15:45) *
wdefik, может в качестве центрального виджета установить QStackedWidget


Дело в том, что в качестве виджета, который будет являться центральным, будут использоваться несколько OpenGl-ных сцен (классы наследуются от QGLWidget), которые могут со временем оказаться тяжеловесными, но переключение между ними будет происходить не слишком часто, так что по идее нет смысла все время хранить эти объекты. То есть в моем случае выгоднее затратить некоторое время на создание сцены, чем хранить его все время.

Означает ли это, что я смогу в QStackedWidget держать указатели на нужные виды сцен и динамически создавать\разрушать их при этом выбирая новую для отображения?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.