crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QMainWindow, QMainWindow::setMainWidget(QWidget*)
wdefik
  опции профиля:
сообщение 3.4.2010, 1:12
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 4.3.2010
Пользователь №: 1505

Спасибо сказали: 0 раз(а)




Репутация:   0  


Возможно ли после того, как в QMainWindow методом setMainWidget(QWidget*) уже установлен главный виджет, назначить ему в качестве главного виджета другой, а в общем случае просто жонглировать виджетами, причем так, чтобы все было корректно? :)

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



Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 3.4.2010, 8:54
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


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

можно попробовать уставливать виджет, а когда нужно установить другой
менять ему хозяина/владельца к примеру на 0 и затем в ручную освобождать память,
затем устанавливать другой.
написать тест и узнать можно так или нет.
пока других способов мне не видно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wdefik
  опции профиля:
сообщение 3.4.2010, 13:25
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 4.3.2010
Пользователь №: 1505

Спасибо сказали: 0 раз(а)




Репутация:   0  


Да, setCentralWidget(QWidget*) - прошу прощения, ночь, утсалость.. :)

Да, кажется, такой вариант приемлем. спасибо :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 3.4.2010, 14:38
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


wdefik,
ты пробовал или наугад сказал что вариант приемлем?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 3.4.2010, 15:45
Сообщение #5


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


wdefik, может в качестве центрального виджета установить QStackedWidget
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 3.4.2010, 15:54
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


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

во! увидел
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wdefik
  опции профиля:
сообщение 3.4.2010, 16:32
Сообщение #7


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 4.3.2010
Пользователь №: 1505

Спасибо сказали: 0 раз(а)




Репутация:   0  


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


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

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


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

Означает ли это, что я смогу в QStackedWidget держать указатели на нужные виды сцен и динамически создавать\разрушать их при этом выбирая новую для отображения?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.9.2019, 5:54