Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: PavelVX от Июня 07, 2011, 08:57



Название: как указать и закрепить высоту одного из элементов в QVBoxLayout?
Отправлено: PavelVX от Июня 07, 2011, 08:57
Вроде бы простая вещь, но споткнулся и не могу решить. Хелп покурил, но ..
Необходимо сделать простую вещь: расположить два QLineEdit друг под другом так, что бы при изменении размеров окна верхний editNapr менял размеры и в ширину и высоту, а commentsEditor только в ширину. Причем commentsEditor нужно задать размер при создании и не менять.
Далее делаю так:
    QVBoxLayout * bottomBoxLayout = new QVBoxLayout();

    QLineEdit * editNapr = new QLineEdit(this);
    bottomBoxLayout->addWidget(editNapr);
    QPlainTextEdit * addresEditor = new QPlainTextEdit(this);
    bottomBoxLayout->addWidget(addresEditor);

    QPlainTextEdit * commentsEditor = new QPlainTextEdit(this);
    commentsEditor->setGeometry(0,0,10, 100);
    commentsEditor->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    bottomBoxLayout->addWidget(commentsEditor);

Данная конструкция все делает почти правильно, но размер по умолчанию для commentsEditor я не могу изменить :(.
Что я делаю не так??
PS Для простейших комментариев в 2-3 строки какой лучше испотльзовать контрол?


Название: Re: как указать и закрепить высоту одного из элементов в QVBoxLayout?
Отправлено: GreatSnake от Июня 07, 2011, 10:53
Зачем позволять QLineEdit, который однострочный, менять высоту ???
Насчёт commentsEditor, попробуй так:
Код
C++ (Qt)
commentsEditor->setFixedHeight( 100 );
Но по хорошему, высота должна рассчитываться от размера текущего фонта * количество видимых строк.


Название: Re: как указать и закрепить высоту одного из элементов в QVBoxLayout?
Отправлено: PavelVX от Июня 07, 2011, 11:50
Спасибо, помогло!
Но по хорошему, высота должна рассчитываться от размера текущего фонта * количество видимых строк.
Согласен на все 100%. Возможно так в итоговой форме и будет.