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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt-3.3.3]QLayout  (Прочитано 3463 раз)
booomer
Гость
« : Май 07, 2007, 23:39 »

Попробовал поработать с Layout'ами. Для примера перекатал код из хелпа...Все заработал как сказано.Попытался свое сделать:

Код:


QVBoxLayout *Layout1= new QVBoxLayout;
Layout1->addWidget(label2);
Layout1->addWidget(edit1);
Layout1->setMargin(15);
Layout1->setSpacing(1);
QVBoxLayout *Layout2= new QVBoxLayout;
Layout2->addWidget(label3);
Layout2->addWidget(edit2);
Layout2->setMargin(30);
Layout2->setSpacing(1);
QVBoxLayout *Layout4 = new QVBoxLayout;
Layout->addWidget(label1);
family = new QComboBox(this);
family->insertItem("sdf",0);
family->insertItem("fds",1);
Layout4->addWidget(family);
QHBoxLayout *leftLayout = new QHBoxLayout;
leftLayout->addLayout(Layout4);
leftLayout->addLayout(Layout1);
leftLayout->addWidget(checkbox1);
leftLayout->addLayout(ipaddrLayout2);
leftLayout->setSpacing(1);
QHBoxLayout *rightLayout= new QHBoxLayout;
rightLayout->addWidget(button1);
rightLayout->addWidget(button2);
rightLayout->addStretch(1);
QVBoxLayout *mainlayout= new QVBoxLayout;
mainlayout->addLayout(leftLayout);
mainlayout->addLayout(rightLayout);
mainlayout->setSpacing(1);


При запускепоказывается только первый инциализированный layout, т.е. в данном случае Layout1, и то, без label1. Пробовал переставлять и менять и, вроде, все пробовал...Подскажите как сделать так, чтобы все layoutы были видны по схеме:
mainlayout{leftlayout{Layout1,     rightlayout{button1,
                                 Layout2,                      button2}  
                                 checkbox,
                                 Layout4}                                      }
Записан
Muller
Гость
« Ответ #1 : Май 08, 2007, 10:54 »

Пропиши parent при создании каждого layout и widget.
Например, QVBoxLayout *Layout1= new QVBoxLayout(this).
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Май 08, 2007, 10:58 »

Возможно это из-за того, что не задан парент для mainlayout. Попробуй так:

Код:
....
QVBoxLayout *mainlayout= new QVBoxLayout(this);
....
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
booomer
Гость
« Ответ #3 : Май 08, 2007, 14:52 »

Ох...сам нашел, через часок поисков =) Спасибо всем....
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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