Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Сентябрь 11, 2015, 18:54



Название: QTreeWidget управление секциями
Отправлено: Igors от Сентябрь 11, 2015, 18:54
Добрый день

Аттач: первая и последняя колонка QHeaderView::Stretch, средняя - ResizeToContent. Вопросы:

1) Откуда горизонтальный скроллер? Причем неск пикселей, текст как был обрезан так и остался. Из каких соображений лепится скроллер и что надо сделать чтобы его не было?

2) Почему не забрали лишнее место у средней колонки?

3) Возможно мне и в средней колонке понадобится длинноватый текст. Тогда ResizeToContent совсем задавит первую и последнюю. А поставить всем трем Stretch - она просто сделает равные длины у всех  :'(

Текст примера прилагаю

Спасибо


Название: Re: QTreeWidget управление секциями
Отправлено: Racheengel от Сентябрь 16, 2015, 11:57
По поводу 1 - похоже на кутишный баг, сам такое не раз видел. Лечится выключением горизонтального скроллера.

По поводу 2 - это "место" для значка сортировки в хедере, видать, стиль имплементирован так, что место остается, даже если сортировка неактивна.

Ну а по поводу 3 - а если просто поставить ResizeToContent для всех колонок?


Название: Re: QTreeWidget управление секциями
Отправлено: poru от Сентябрь 16, 2015, 12:14
1) Последняя секция не может быть менее 100 пикселей - дурацкая формула расчета (Qt5.5.0). Qt::ScrollBarAlwaysOff - выключит скроллер навсегда.

2) Если лишнее место в заголовке то похоже действительно на резерв для значка. А если место в контексте, то текст заголовка рассматривается так же как контекст и на него так же действует правило ResizeToContents.

3) Как вариант установить минимальную ширину для колонок.


Название: Re: QTreeWidget управление секциями
Отправлено: Igors от Сентябрь 16, 2015, 12:35
Ну а по поводу 3 - а если просто поставить ResizeToContent для всех колонок?
Тогда ничего не жмется, впарит горизонтальный скролл

3) Как вариант установить минимальную ширину для колонок.
А где это? "Для всех" есть, но что это дает?


Название: Re: QTreeWidget управление секциями
Отправлено: poru от Сентябрь 16, 2015, 13:16
Пересчитывай ширину всех колонок или какой-то отдельно самостоятельно - QHeaderView::Fixed, resizeSection().