Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Joss от Май 19, 2010, 02:12



Название: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: Joss от Май 19, 2010, 02:12
Я голову уже сломал,
делаю форму в дизайнере, добавляю туда Tool Box и начинаю в нем по вертикали добавлять кнопки. Ставлю по вертикали SizePolicy: MinimumExpanding. Все вроде хорошо, при ресайзе окна, оно ресайзится до тех пор, пока все кнопки могут быть отображены на экране.

Начинаю добавлять кнопки и в какой-то момент в Tool Box при ресайзе появляется вертикальная прокрутка. Как от нее избавиться?

Поместил иллюстрацию и ui.
Подскажите пожалуйста, буду очень признателен, спасибо!



Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: crossly от Май 19, 2010, 08:56
Код:
void setHorizontalScrollBarPolicy ( Qt::ScrollBarPolicy )


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: alexman от Май 19, 2010, 14:13
Код:
void setHorizontalScrollBarPolicy ( Qt::ScrollBarPolicy )
Откуда и для чего вызывать?


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: Joss от Май 19, 2010, 14:30
: Откуда и для чего вызывать?

Да, и мне хотелось бы понять.
Яснее, на всякий случай, сформулирую проблему - при ресайзе окна я хотел бы, чтобы оно не ресайзилось в сторону уменьшения дальше той границы, за которой возникает необходимость в скрулинге содержимого Tool Box.

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


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: crossly от Май 19, 2010, 14:53
действительно не к чему.... никак.... :)


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: Joss от Май 19, 2010, 15:21
действительно не к чему.... никак.... :)

А можно поподробнее, если не сложно?
setVerticalScrollBarPolicy это метод QAbstractScrollArea и как его использовать в QToolBox?


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: alexman от Май 19, 2010, 15:34
действительно не к чему.... никак.... :)

А можно поподробнее, если не сложно?
setVerticalScrollBarPolicy это метод QAbstractScrollArea и как его использовать в QToolBox?
никак


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: crossly от Май 19, 2010, 15:41
можно получить доступ к виджету в scrollarea но нельзя получить доступ к самой области прокрутки....


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: Joss от Май 19, 2010, 17:09
Господа,
ну видимо я туплю, объясните пожалуйста:

1) насколько я понимаю, отключение скрула ничего не даст, просто часть элементов внутри тулбокса будут перекрываться при резайзе. Т.е. цель именно в том, чтобы не дать окну ресайзится в сторону уменьшения свыше определенной границы. Я понимаю, что можно тупо прописать минимальную высоту окна, но как-то это глупо.
2) Почему не отрабатывает MinimumExpanding? Т.е. это срабатывает до какого-то момента, например, если оставить 10 кнопок внутри тулбокса, все отлично ресайз происходит именно до момента когда все компоненты тулбокса еще помещаются в окне, но стоит добавить еще одну кнопку - все, поплыли, получаем скрулинг при ресайзе окна.

Мне, как новичку, казалось, что менеджеры компоновки должны на основе размеров элементов (кнопок) определять требуемый SizeHint, который и будет учитываться одновременно со свойством MinimumExpanding. И почему это срабатывает с 10 кнопками и уже не срабатывает с 11 и более?


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: Dragon от Май 24, 2010, 09:30
Если я правильно понял... то отключи возможность менять длину окна. Установи фиксированный размер :)


Название: Re: Избавиться от вертикальной прокрутки в QToolBox
Отправлено: Joss от Май 24, 2010, 10:48
Если я правильно понял... то отключи возможность менять длину окна. Установи фиксированный размер :)

Правильно, но это тупиковое решение, тем более, что будет на других платформах, с другим размером шрифтов, с другим разрешением?