Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: CProger от Апрель 05, 2010, 21:52



Название: Разве один Layout в другой нельзя вставить??
Отправлено: CProger от Апрель 05, 2010, 21:52
Вот уж не думал, что и здесь столкнусь с проблемой.. Попытался встроить один Layout в другой:
Код
C++ (Qt)
QGridLayout *layout = new QGridLayout();
 
QHBoxLayout *hBoxLayout = new QHBoxLayout();
hBoxLayout->addWidget( edit1 );
hBoxLayout->addWidget( edit2 );
 
layout->addWidget( hBoxLayout, 1, 1 );

ну и получил ошибку:
Цитировать
main.cpp:405: ошибка: нет подходящей функции для вызова ‘QGridLayout::addWidget(QHBoxLayout*&, int, int)’
/usr/include/qt4/QtGui/qgridlayout.h:116: замечание: претенденты: void QGridLayout::addWidget(QWidget*)
/usr/include/qt4/QtGui/qgridlayout.h:117: замечание:              void QGridLayout::addWidget(QWidget*, int, int, Qt::Alignment)
/usr/include/qt4/QtGui/qgridlayout.h:118: замечание:              void QGridLayout::addWidget(QWidget*, int, int, int, int, Qt::Alignment)

а как же сделать? Только таблицами верстать? странно...


Название: Re: Разве один Layout в другой нельзя вставить??
Отправлено: BRE от Апрель 05, 2010, 21:54
а как же сделать? Только таблицами верстать? странно...
void QBoxLayout::addLayout ( QLayout * layout, int stretch = 0 )


Название: Re: Разве один Layout в другой нельзя вставить??
Отправлено: CProger от Апрель 05, 2010, 21:59
а как же сделать? Только таблицами верстать? странно...
void QBoxLayout::addLayout ( QLayout * layout, int stretch = 0 )

не пойму.. а куда какой лэйаут оно добавляет?
мне в одной из ячеек таблицы нужно два компонента поставить.. Подумал применив QHBoxLayout, но не прокатило.


Название: Re: Разве один Layout в другой нельзя вставить??
Отправлено: BRE от Апрель 05, 2010, 22:04
не пойму.. а куда какой лэйаут оно добавляет?
мне в одной из ячеек таблицы нужно два компонента поставить.. Подумал применив QHBoxLayout, но не прокатило.
Ты в документации посмотри.
У QGridLayout есть свои методы:
void QGridLayout::addLayout ( QLayout * layout, int row, int column, Qt::Alignment alignment = 0 )
void QGridLayout::addLayout ( QLayout * layout, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )


Название: Re: Разве один Layout в другой нельзя вставить??
Отправлено: CProger от Апрель 06, 2010, 11:57
BRE
точно! Спасибо!

А я глянул наличие такого свойства в QHBoxLayout) и не нашёл) Думал, что если в него можно добавить встроенный лэйаут, то и в любой другой лэйаут тоже можно будет добавить, а раз оказалось нельзя в этот...))) Спасибо, в общем!)