Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ QSplitter layout

Автор: Begemot 18.5.2010, 8:15

Привет

Помогите с лайатом, что-то я с трудом вьезжаю:(

надо в главном окне так - A | B | C , где A, B, C это мои классы наследники QFrame, а | - сплитера. Этого добился, дальше хуже,
1. Какая волшебная комбинация свойств сделает так что бы при растяжении окна по горизонтали растягивался только С, а А и B оставались неизменные ?
2. Как установить начальную ширину А и B ?
3. Как сохранять\востанвлять геометрию внутреннего лайаута (положение сплитеров), может кто ткнут носом в ссылку\пример.

Автор: kibsoft 18.5.2010, 8:51

Цитата(Begemot @ 18.5.2010, 9:15) *
Привет

Помогите с лайатом, что-то я с трудом вьезжаю:(

надо в главном окне так - A | B | C , где A, B, C это мои классы наследники QFrame, а | - сплитера. Этого добился, дальше хуже,
1. Какая волшебная комбинация свойств сделает так что бы при растяжении окна по горизонтали растягивался только С, а А и B оставались неизменные ?
2. Как установить начальную ширину А и B ?
3. Как сохранять\востанвлять геометрию внутреннего лайаута (положение сплитеров), может кто ткнут носом в ссылку\пример.

1) у A и B виджетов setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding) это для примера. Fixed - чтобы размер по горизонтали не менялся.
2) попробуй resize. Точно не знаю.
3) QByteArray QSplitter::saveState () const

Автор: Litkevich Yuriy 18.5.2010, 10:01

kibsoft, не цитируй целыми сообщениями

Автор: kibsoft 18.5.2010, 16:20

Litkevich Yuriy, замечание принято :yes:

Автор: Begemot 19.5.2010, 10:16

Цитата(kibsoft @ 18.5.2010, 8:51) *
1) у A и B виджетов setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding) это для примера. Fixed - чтобы размер по горизонтали не менялся.


Это было первое что я сделал :) Еще пытался установить stretch factor в дизайнере вроде стало выглядеть правильно, в реальности нет. Похоже это как-то еще зависит от настроек самих классов наследников панелей..

И еще одна очень странная вещь - когда запускаю, поведение сплитера не правильное. но стоит только руками дергнуть один из разделителей как все становится замечательным, теперь можно ресайзить окно и поведение будет именно таким какого я и добивался.

Цитата(kibsoft @ 18.5.2010, 8:51) *
QByteArray QSplitter::saveState () const

Спасибо, то что надо.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)