Russian Qt Forum
Ноябрь 14, 2024, 20:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QToolBar. Как восстановить расположение?  (Прочитано 4959 раз)
spectre71
Гость
« : Август 02, 2009, 14:59 »

Есть несколько movable QToolBar.
Пользователь может их претаскивать.
Как сохранить и восстановить расположение тулбаров?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Август 02, 2009, 15:23 »

Если тулбар размещен на QMainWindow, то:

Цитировать
QByteArray QMainWindow::saveState ( int version = 0 ) const
Saves the current state of this mainwindow's toolbars and dockwidgets.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
spectre71
Гость
« Ответ #2 : Август 02, 2009, 15:57 »

Если тулбар размещен на QMainWindow, то:

Цитировать
QByteArray QMainWindow::saveState ( int version = 0 ) const
Saves the current state of this mainwindow's toolbars and dockwidgets.
Спасибо!
Получается такая фигня Улыбающийся
Код
C++ (Qt)
char* store = saveState().toBase64().data();
....
....
restoreState(QByteArray::fromBase64(QByteArray(store)));

store  - можем спокойно сохранять и восстанавливать.
Я сохраняю конфигурации в XML, поэтому удобнее получать base64 строку.

Записан
ритт
Гость
« Ответ #3 : Август 02, 2009, 18:56 »

а конфиг читаешь/пишешь через qsettings?
Записан
Rcus
Гость
« Ответ #4 : Август 02, 2009, 19:00 »

[offtop]
Чувствую еще придет ваш день разбирать соверешенно левые трейсы из-за dangling pointers
[/offtop]
Записан
spectre71
Гость
« Ответ #5 : Август 02, 2009, 19:50 »

а конфиг читаешь/пишешь через qsettings?
Нет. Свои классы.
Записан
spectre71
Гость
« Ответ #6 : Август 02, 2009, 20:00 »

[offtop]
Чувствую еще придет ваш день разбирать соверешенно левые трейсы из-за dangling pointers
[/offtop]
Я там схематично написал, дабы просто обозначить тип char*.
На самом деле у меня так:
ini.controls.wmain.dock_state = saveState().toBase64().data();
а dock_state имеет тип sbw::String, похож на QString только не unicode
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.17 секунд. Запросов: 23.