![]() |
|
![]() ![]() ![]() |
|
babutta |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 18.12.2006 Репутация: нет Всего: нет |
Добрый день всем.
Использую Qt 4.5.1 и VS2005. Такая проблема... Главное окно приложения - наследник QMainWindow, который содержит некое количество QDockWidget'ов... для сохранения и восстановления состояния главного окна использую стандартные средтва - методы главного окна saveState() и restoreState(). Состояние сохраняется - в реестре появляется узел с бинарным значением. При восстановлении состояния, док-виджеты слева и справа притесняют центральный виджет, которому приходится сжиматься до минимальных размеров по горизонтали. Когда закрываю боковые док-виджеты, закрываю приложение и запускаю снова, то свои козни начинает нижний док-виджет, который сжимает центрального до его минимальных размеров теперь уже по вертикали. Никаких политик типа SizePolicy и т.п. не менял. куда копать? почему док-виджеты растягиваются по полной, а не восстанавливают свое состояние? ![]() з.ы. набрасал тестовое маленькое приложение, там все работает, хотя разницы принципиальной между тестовым и рабочим приложениями нет =((( |
|||
|
||||
Antiquar |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.9.2009 Репутация: нет Всего: нет |
Попробуйте использовать два вызова подряд:
pWidget->saveGeometry(); pWidget->saveState(); ну и при чтении понятно: pWidget->restoreGeometry(pGeometry); pWidget->restoreState(pState); Лично у меня QDockWidget-ы при восстановлении отрисовываются там, где были при закрытии Добавлено через 1 минуту и 24 секунды Попробуйте использовать два вызова подряд: pWidget->saveGeometry(); pWidget->saveState(); ну и при чтении понятно: pWidget->restoreGeometry(pGeometry); pWidget->restoreState(pState); Лично у меня QDockWidget-ы при восстановлении отрисовываются там, где были при закрытии |
|||
|
||||
babutta |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 18.12.2006 Репутация: нет Всего: нет |
Сохранение геометрии работает, т.е. размеры и положение главного окна восстанавливаются при перезапуске приложения, но это не помогает док-виджетам - они ведут себя так же =(
|
|||
|
||||
babutta |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 18.12.2006 Репутация: нет Всего: нет |
В общем проблема решена... не без посторонних внимательных глаз =)
Ошибка была в том, что я пользовался конструктором и деструктором для восстановления и сохранения состояния соответственно... так вот восстановление состояния на конструкторе было ошибкой... как только перешел на closeEvent() и showEvent() так все и заработало =) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |