![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
call_me_Frank |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 73 Регистрация: 20.10.2010 Пользователь №: 2129 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Привет!
пытаюсь восстановить соотношения размеров элементов внутри QSplitter'a, делаю это через sizes() & setSizes(). Проблема заключается в том, что восстановление размеров (setSizes()) вызывается до того момента, когда сплиттер будет отображен (show()). И поэтому никакого восстановления не происходит. В моем случае это приводит к тому, что мне надо сконфигурировать некоторый "документ", потом его отобразить, и потом сконфигурировать еще раз только ради того, чтоб привести в порядок сплиттер - это кажется излишним. Если не трогать архитектуру приложения, каким образом я могу связать момент отображения QSplitter'a с тем, чтобы восстановить его размеры? Метод show() не является виртуальным, сигнала о том, что виджет был нарисован тоже нет. что посоветуете? ![]() |
|
|
kruger |
![]()
Сообщение
#2
|
Студент ![]() Группа: Новичок Сообщений: 15 Регистрация: 6.10.2015 Пользователь №: 4459 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
QSplitter сохраняет и востанавливает размеры самостоятельно, глянь: QByteArray QSplitter::saveState () const и bool QSplitter::restoreState ( const QByteArray & state )?
|
|
|
call_me_Frank |
![]()
Сообщение
#3
|
![]() Студент ![]() Группа: Участник Сообщений: 73 Регистрация: 20.10.2010 Пользователь №: 2129 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
QSplitter сохраняет и востанавливает размеры самостоятельно, глянь: QByteArray QSplitter::saveState () const и bool QSplitter::restoreState ( const QByteArray & state )? state() - это тот же sizes(), только в ByteArray, а не в списке, содержание тоже самое. Так что это не поможет :] |
|
|
ViGOur |
![]()
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Я не помню void QWidget::showEvent ( QShowEvent * event ) в какой момент вызывается, если сделать как-то так:
А вообще, я почитал, и во многих местах советуется поставить в то место showEvent, где у меня коментарий такой код: разумеется где-то сделав: Получается некий хак, но работает...
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 27.2.2025, 14:29 |