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

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

Форум на CrossPlatform.RU _ Qt GUI _ есть ли QSplitter в QT Desinger'е?

Автор: Delphist 14.8.2008, 8:44

Скажите, пожалуйста, почему в QT Desinger на панели Widget Box (где расположены все компоненты) нет QSplitter'a

Автор: AD 14.8.2008, 8:47

Цитата(Delphist @ 14.8.2008, 9:44) *
Скажите, пожалуйста, почему в QT Desinger на панели Widget Box (где расположены все компоненты) нет QSplitter'a

Именно. Вроде как надо ручками! :(

Автор: Otto Baynes 14.8.2008, 9:05

Ну так там есть Lay Out Horizontally in Splitter и Lay Out Vertically in Splitter. Выбираете 2 или более виджета, а потом одно из этих действий.

Автор: Delphist 14.8.2008, 9:20

Цитата(Otto Baynes @ 14.8.2008, 9:05) *
Ну так там есть Lay Out Horizontally in Splitter и Lay Out Vertically in Splitter. Выбираете 2 или более виджета, а потом одно из этих действий.

Точно, спасибо.

Автор: Litkevich Yuriy 14.8.2008, 10:02

Delphist, ты считаешь, что название темы как-то отражает твой вопрос?

П.С. Пишите тему так чтобы понятно было о чем вопрос

Автор: kuler 11.9.2008, 10:19

а как сделать чтоб стили сплиттера менять? чтоб была такая фишка когда на сплиттер щелкаешь, а он сразу одну из частей делает во весь размер, скрывая другую?

Автор: ЙаМайскЫйПчОЛ 11.9.2008, 14:15

могу предположить что надо так.
Унаследуй свой класс от QSplittera, опиши функцию mousePressEvent при вызове которой происходит setCollapsible(int. bool)
только как однозначно определить кого свернуть?)))
Поэтому предусмотрен коллапс при достижении виджетом minimumSize( так что если твой видгет maximumsize == minimumsize достаточно нажать на сплиттер и на миллиметр сдвинуть в ту сторону которую хочешь скукожить)
Вроде жмыкание безсмысленно))))

тут надо исходить из условия состояния виджетов

Автор: kuler 11.9.2008, 14:23

то есть опять же нельзя через дизайнер.... в билдере это на раз-два делается..

Автор: ЙаМайскЫйПчОЛ 11.9.2008, 14:27

Может я недопонял, чего ты хочешь получить, но у меня десигнер такой же как у тебя)))) и там этого вроде нет.

Автор: Litkevich Yuriy 11.9.2008, 16:05

Цитата(kuler @ 11.9.2008, 14:19) *
а как сделать чтоб стили сплиттера менять?
стиль не отвечает за поведение, а только за оформление.
ЙаМайскЫйПчОЛ, сказал все как есть.
Цитата(kuler @ 11.9.2008, 18:23) *
в билдере это на раз-два делается.
просто есть такие методы у их класса, а у QSplitter нет.

Автор: kuler 11.9.2008, 16:09

кстати, а как сделать чтоб при добавлении сплиттера (опять же в дизайнере) можно было указать начальные размеры элементов (ну там первый элемент 20 пикселов)?

Автор: Litkevich Yuriy 11.9.2008, 16:45

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

Автор: kuler 11.9.2008, 17:11

Цитата(Litkevich Yuriy @ 11.9.2008, 17:45) *
сплиттер это разновидность компоновщика, соответственно также как и для компоновщика, задавай размеры вложеных виджетов, или сделай для удобства групповой виджет - ему размеры задай.

меняю, а они не меняются, возможно изза sizepolicy?

Автор: Litkevich Yuriy 11.9.2008, 17:20

тупая установка размера (setGeometry) будет работать только если никто (например, компоновщик) не изменяет размер.

Цитата(kuler @ 11.9.2008, 21:11) *
возможно изза sizepolicy?
да политику надо установить, есть еще минимальный и максимальный размеры, которые учитываются компоновщиком.

Автор: kuler 11.9.2008, 17:29

Цитата(Litkevich Yuriy @ 11.9.2008, 18:20) *
да политику надо установить, есть еще минимальный и максимальный размеры, которые учитываются компоновщиком.

какую? и для кого?

Автор: Litkevich Yuriy 11.9.2008, 17:41

ну тебе все не разжушь за 5 мин. Лучшеб тебе потренироваться на примитивном виджете который содержит пару тройку других размещенных в компоновщике. Изучай с "http://crossplatform.ru/documentation/qtdoc4.3/tutorial-t4.php"

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