Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Red Devil от Май 31, 2008, 13:38



Название: Решено : Как устанавливать размеры виджетов в QLayout
Отправлено: Red Devil от Май 31, 2008, 13:38
Как мне указать layout, какие размеры должны быть у виджета ?
Хочу чтобы первый элемент, занимал определенное кол-во пикселей, а второй все остальное свободное пространство.
В BoxLayout есть параметр stretch - мне нужен практически он только с возможностью установить полный контроль над размером помещаемого виджета.


Название: Re: Как устанавливать размеры виджетов в QLayout
Отправлено: Sergeich от Май 31, 2008, 14:47
QWidget::setSizePolicy(  QSizePolicy::Fixed ) для первого и QWidget::setSizePolicy(  QSizePolicy::Expanding ) для второго.
Читать http://doc.trolltech.com/4.4/layout.html или тоже самое по-русски: http://www.crossplatform.ru/documentation/qtdoc4.3/layout.php


Название: Re: Как устанавливать размеры виджетов в QLayout
Отправлено: Red Devil от Май 31, 2008, 15:09
Странно как-то.
Я пытаюсь сделать setSizePolicy для QHeaderView - pView->setSizePolicy(QSizePolicy::Fixed), компилятор мне говорит что Fixed недоступен (он не public).


Название: Re: Как устанавливать размеры виджетов в QLayout
Отправлено: Sergeich от Май 31, 2008, 16:53
#inlude <QSizePolicy> делал?


Название: Re: Как устанавливать размеры виджетов в QLayout
Отправлено: Red Devil от Май 31, 2008, 17:31
сделал :
Код:
pView->setSizePolicy(QSizePolicy::Fixed);
Цитировать
\mainwnd.cpp(66) : error C2248: 'QSizePolicy::QSizePolicy' : cannot access private member declared in class 'QSizePolicy'
       p:\qt_4.4.0\include\qtgui\../../src/gui/kernel/qsizepolicy.h(201) : see declaration of 'QSizePolicy::QSizePolicy'
       p:\qt_4.4.0\include\qtgui\../../src/gui/kernel/qsizepolicy.h(58) : see declaration of 'QSizePolicy'


Название: Re: Как устанавливать размеры виджетов в QLayout
Отправлено: Sergeich от Май 31, 2008, 19:01
Есть два варианта setSizePolicy:
void setSizePolicy ( QSizePolicy )
void setSizePolicy ( QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical )
юзай
pView->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
или
pView->setSizePolicy( QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)  );


Название: Re: Решено : Как устанавливать размеры виджетов в QLayout
Отправлено: Red Devil от Май 31, 2008, 19:06
Спасибо, разобрался.