Russian Qt Forum
Ноябрь 05, 2024, 22:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Разве один Layout в другой нельзя вставить??  (Прочитано 4192 раз)
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)

а как же сделать? Только таблицами верстать? странно...
Записан
BRE
Гость
« Ответ #1 : Апрель 05, 2010, 21:54 »

а как же сделать? Только таблицами верстать? странно...
void QBoxLayout::addLayout ( QLayout * layout, int stretch = 0 )
Записан
CProger
Гость
« Ответ #2 : Апрель 05, 2010, 21:59 »

а как же сделать? Только таблицами верстать? странно...
void QBoxLayout::addLayout ( QLayout * layout, int stretch = 0 )

не пойму.. а куда какой лэйаут оно добавляет?
мне в одной из ячеек таблицы нужно два компонента поставить.. Подумал применив QHBoxLayout, но не прокатило.
Записан
BRE
Гость
« Ответ #3 : Апрель 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 )
Записан
CProger
Гость
« Ответ #4 : Апрель 06, 2010, 11:57 »

BRE
точно! Спасибо!

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


Страница сгенерирована за 0.202 секунд. Запросов: 21.