Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Апрель 23, 2014, 08:54



Название: Центровка в лайоуте
Отправлено: Igors от Апрель 23, 2014, 08:54
Добрый день

См аттач. Создаю QVBoxLayout и в него добавляю полосу индикатора + нижнюю панельку. Для нее создаю QHBoxLayout и добавляю 3 QLabel.

Как сделать так чтобы средняя "KBytes" встала по центру полосы (без утомительного вычисления подкладок)?

Спасибо


Название: Re: Центровка в лайоуте
Отправлено: Old от Апрель 23, 2014, 09:07
Я бы на нижней панели крайним QLabel задал бы фиксированный одинаковый размер по горизонтале.


Название: Re: Центровка в лайоуте
Отправлено: sergek от Апрель 23, 2014, 09:33
А если три лейбла скомпоновать по горизонтали с разделителями?


Название: Re: Центровка в лайоуте
Отправлено: Igors от Апрель 23, 2014, 10:00
Я бы на нижней панели крайним QLabel задал бы фиксированный одинаковый размер по горизонтале.
Средний текст может быть длинным (напр задается плагином), тогда он обрежется - хотя место для него было. Впрочем лучшего варианта я пока не вижу

А если три лейбла скомпоновать по горизонтали с разделителями?
Так левый текст все время меняется (индикатор ползет).


Название: Re: Центровка в лайоуте
Отправлено: sergek от Апрель 23, 2014, 10:39
Так левый текст все время меняется (индикатор ползет).
Пусть себе ползет и меняется.


Название: Re: Центровка в лайоуте
Отправлено: Igors от Апрель 23, 2014, 11:58
Пусть себе ползет и меняется.
Лихо, до такого я не додумался! Сделал так: когда правый текст устанавливается, вычисляю его ширину и фиксирую для левого и правого лаблов. Не общее решение.

Еще одна проблема: диалог не должен сайзиться по горизонтали, напр если верхний текст слишком велик - показывать его elided. Я по-простому вычислил размер, отняв от (фиксированной) ширины диалога заступы лайаутов. А как это сделать более элегантно?

Спасибо