Название: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: alexman от Сентябрь 10, 2008, 16:38 Я работаю в Qt 4.4.0.
Столкнулся с такой проблемой: есть главное окно (наследник от QMainWindow) и есть различные tool bar'ы и dock widget'ы, расположенные на этом окне. Я делаю следующее: есть tool bar, затем я его "скрываю" (делаю hide()), затем сохраняю положение с помощью saveGeometry() и saveState(), а затем снова открываю окно и загружаю настройки с помощью функций restoreGeometry() И restoreState(), но tool bar располагается не там где был до закрытия и до того как я его "скрыл"! Может кто-нибудь сталкивался уже с этим и знает в чём проблема? Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: pastor от Сентябрь 10, 2008, 17:09 Есть репорт по этому поводу:
http://trolltech.com/developer/task-tracker/index_html?method=entry&id=225993 Я сталкивался с подобной ситуацией, тока она была связана с доквиджетом: http://trolltech.com/developer/task-tracker/index_html?id=197086&method=entry Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: ритт от Сентябрь 10, 2008, 19:18 а setObjectName тулбару делаем?
Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: ритт от Сентябрь 10, 2008, 22:12 приведи код, которым создаёшь тулбары, сохраняешь и восстанавливаешься геомметрию
желательно максимально приближённый к "боевому"...а то и вообще компилябельный проект, на котором можно было бы поковырять данную проблему у меня подобный функционал работает как положено...правда, бывают "скачки" при смене стиля Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: alexman от Сентябрь 10, 2008, 23:47 Создание toolbar:
Код: QToolBar* initBar( const int type, QMainWindow* mw ) Конструктор ContoursToolbar: Код: ContoursToolbar::ContoursToolbar( QToolBar* parent, QMainWindow* mw ) Сохранение настроек: Код: void MainWindow::writeSettings() Код: void MainWindow::writeSettings() P.S. перед сохранением этот toolbar сначала показывался, а потом был скрыт. Создаётся не один toolbar, а несколько. ********** Незабываем пользоваться тегом КОД для формитирования исходного кода Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: ритт от Сентябрь 13, 2008, 15:32 вот мой код сохранения/восстановления геометрий главного окна (здеь вырезки. естественно, сам код более осмысленный и полный):
Код: MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) проблемы только с доквиджетами - они до сих пор неполностью восстанавливают геометрию - и с тулбарами при смене стиля - иногда тулбары "прыгают" по иксу Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: andrew.k от Декабрь 21, 2010, 12:30 Вы как бывалые подскажите мне. У меня тоже QMainWindow разделенный несколькими сплиттерами на области.
Я делал saveState() и saveGeometry() для самой формы. это не сохраняет их положение. Достаточно ли делать saveState() для главной формы и я что-то делаю не так или нужно отдельно для каждого сплиттера? А насчет objectName, он же задается автоматически при компиляции ui-файла. Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: GreatSnake от Декабрь 21, 2010, 13:27 А что описание QMainWindow::save/restoreState() (http://doc.trolltech.com/latest/qmainwindow.html#restoreState) в ассистенте не судьба посмотреть?
Там же всё расписано что и как сохраняется и восстанавливается. Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: alexman от Декабрь 21, 2010, 13:29 Код: QByteArray QSplitter::saveState () const Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: andrew.k от Декабрь 21, 2010, 19:08 Там ничего не написано про сплиттер.
Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: alexman от Декабрь 21, 2010, 19:17 Так делай для сплитера отдельно!
Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: andrew.k от Декабрь 21, 2010, 19:34 Спасибо, Кэп!
Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: GreatSnake от Декабрь 21, 2010, 19:55 Цитировать Там ничего не написано про сплиттер. Правильно, т.к. QSplitter самостоятельный виджет и не имеет никакого отношения к QMainWindow, в отличие от QToolBar и QDockWidget.Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: andrew.k от Декабрь 22, 2010, 11:53 Цитировать Там ничего не написано про сплиттер. Правильно, т.к. QSplitter самостоятельный виджет и не имеет никакого отношения к QMainWindow, в отличие от QToolBar и QDockWidget.Он имеет такое же отношение к QMainWindow, как дпсник к дорожному движению. Дпсник тоже самостоятельный и не имеет никакого отношения к дорожному движению? :) Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: alexman от Декабрь 22, 2010, 11:58 Цитировать Там ничего не написано про сплиттер. Правильно, т.к. QSplitter самостоятельный виджет и не имеет никакого отношения к QMainWindow, в отличие от QToolBar и QDockWidget.Он имеет такое же отношение к QMainWindow, как дпсник к дорожному движению. Дпсник тоже самостоятельный и не имеет никакого отношения к дорожному движению? :) Цитировать QByteArray QMainWindow::saveState ( int version = 0 ) const То есть состоянием и геометрией центрального виджета вы должны сами управлять. Центральный виджет не имеет никакого отношения к докам и тулбарам!Saves the current state of this mainwindow's toolbars and dockwidgets. Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: andrew.k от Декабрь 22, 2010, 12:38 Теперь правильно :)
разговариваем ни о чем ) Название: Re: Сохранение геометрии и состояния tool bar'ов и dock widget'ов главного окна!? Отправлено: alexman от Декабрь 22, 2010, 16:01 Вот именно!
|