Название: Выровнять QLabel и QLineEdit по центру Отправлено: YvenTitan от Сентябрь 21, 2016, 09:57 Здравствуйте
Надо чтобы QLabel и QLineEdit, разные по длине, рассматривались в QVBoxLayout как 1 виджет, чтобы можно было этот общий виджет выровнять по центру. Может лучше без QVBoxLayout обойтись. Через QGridLayout тоже не получилось, потому что QLineEdit намного длиннее. Можете подсказать, как лучше сделать? Название: Re: Выровнять QLabel и QLineEdit по центру Отправлено: Apktyc от Сентябрь 21, 2016, 10:25 Поместить эти два виджета в отдельный компоновщик (layout), и уже его добавлять в Ваш QVBoxLayout через addLayout.
Название: Re: Выровнять QLabel и QLineEdit по центру Отправлено: gil9red от Сентябрь 21, 2016, 10:38 Или использовать QFormLayout и его addRow (http://doc.qt.io/qt-4.8/qformlayout.html#addRow)
Название: Re: Выровнять QLabel и QLineEdit по центру Отправлено: YvenTitan от Сентябрь 21, 2016, 10:49 Поместить эти два виджета в отдельный компоновщик (layout), и уже его добавлять в Ваш QVBoxLayout через addLayout. Какой должен быть компоновщик layout? Если QHBoxLayout, то растягивается QLineEdit. Если вместо QLineEdit ставить QSpinBox, то появляется пробел между QLabel и QSpinBox, которого необходимо избежатьНазвание: Re: Выровнять QLabel и QLineEdit по центру Отправлено: YvenTitan от Сентябрь 21, 2016, 11:01 Или использовать QFormLayout и его addRow (http://doc.qt.io/qt-4.8/qformlayout.html#addRow) В этом случае QLineEdit растягивается при растягивании окна. Вместо него может быть QSpinBox и это будет некрасиво.Название: Re: Выровнять QLabel и QLineEdit по центру Отправлено: Apktyc от Сентябрь 21, 2016, 11:09 На вскидку, настройка выравнивания (setAlignment) для компоновщика и sizePolicy, minimumSize, maximumSize для виджетов.
Название: Re: Выровнять QLabel и QLineEdit по центру Отправлено: gil9red от Сентябрь 21, 2016, 12:29 Поместить эти два виджета в отдельный компоновщик (layout), и уже его добавлять в Ваш QVBoxLayout через addLayout. Какой должен быть компоновщик layout? Если QHBoxLayout, то растягивается QLineEdit. Если вместо QLineEdit ставить QSpinBox, то появляется пробел между QLabel и QSpinBox, которого необходимо избежатьДобавьте слева и справа пружинки, тогда по идеи, они не будут растягиваться по ширине: Код
Еще у виджетов есть политика растягивания -- setSizePolicy (http://doc.qt.io/qt-4.8/qwidget.html#sizePolicy-prop) и установка QSizePolicy::Minimum (http://doc.qt.io/qt-4.8/qsizepolicy.html#Policy-enum) не даст виджету занять все доступное ему место. А лучше всего открыть дизайнер Qt и в нем накидать форму -- удобнее настраивать и или ей воспользоваться, или посмотреть какой код формы был сгенерирован. Название: Re: Выровнять QLabel и QLineEdit по центру Отправлено: YvenTitan от Сентябрь 21, 2016, 12:32 Спасибо, помогло
|