crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QMainWindow
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
wdefik Дата 3.4.2010, 16:32
 
Цитата(kwisp @ 3.4.2010, 14:38) *
wdefik,
ты пробовал или наугад сказал что вариант приемлем?


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

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


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

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

во! увидел
igor_bogomolov Дата 3.4.2010, 15:45
  wdefik, может в качестве центрального виджета установить QStackedWidget
kwisp Дата 3.4.2010, 14:38
  wdefik,
ты пробовал или наугад сказал что вариант приемлем?
wdefik Дата 3.4.2010, 13:25
  Да, setCentralWidget(QWidget*) - прошу прощения, ночь, утсалость.. :)

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

можно попробовать уставливать виджет, а когда нужно установить другой
менять ему хозяина/владельца к примеру на 0 и затем в ручную освобождать память,
затем устанавливать другой.
написать тест и узнать можно так или нет.
пока других способов мне не видно.
wdefik Дата 3.4.2010, 1:12
  Возможно ли после того, как в QMainWindow методом setMainWidget(QWidget*) уже установлен главный виджет, назначить ему в качестве главного виджета другой, а в общем случае просто жонглировать виджетами, причем так, чтобы все было корректно? :)

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



Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 11:40