Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Января 28, 2014, 06:58



Название: QLabel + QLineEdit + QLayout
Отправлено: Igors от Января 28, 2014, 06:58
Добрый день

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

Спасибо


Название: Re: QLabel + QLineEdit + QLayout
Отправлено: GreatSnake от Января 28, 2014, 07:23
Самым простым будет с QFormLayout c labelAlignment( Qt::AlignRight ).
Можно и с QGridLayout, только выравнивание задавать для каждого QLabel.


Название: Re: QLabel + QLineEdit + QLayout
Отправлено: nono от Января 28, 2014, 08:02
Попробуй для всех лейблев задать одинаковую максимальную и минимальную ширину и выравнять их по правому краю:
......
    QLabel lbl;
    lbl.setMinimumWidth(20);
    lbl.setMaximumWidth(20);
    lbl.setAlignment(Qt::AlignRight);
......


Название: Re: QLabel + QLineEdit + QLayout
Отправлено: Alex Custov от Января 28, 2014, 10:42
в редакторе свойств задай первому lineEdit-у "горизонтальное растяжение" (stretch factor) в 1


Название: Re: QLabel + QLineEdit + QLayout
Отправлено: Day от Января 28, 2014, 13:11
Самым простым будет с QFormLayout c labelAlignment( Qt::AlignRight ).
Спасибо! С удовольствием воспользовался
Код:
 form->setLabelAlignment( Qt::AlignRight );


Название: Re: QLabel + QLineEdit + QLayout
Отправлено: Igors от Января 28, 2014, 13:28
Самым простым будет с QFormLayout c labelAlignment( Qt::AlignRight ).
Понял, спасибо. А я и не подозревал о существовании такого лайаута  :)