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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGroupBox  (Прочитано 6556 раз)
vexar
Гость
« : Декабрь 28, 2009, 04:48 »

Кто знает как отобразить два QGroupBox в MainWindow ?

Код:
MainWindow::MainWindow()
{
    QGroupBox *groupBox1 = new QGroupBox(trUtf8("Текст"));
   
    QLabel *text1 = new QLabel(tr("Текст"));

    QVBoxLayout *vbox1 = new QVBoxLayout;
    vbox->addWidget(text1);
    vbox->addStretch(1);
    groupBox->setLayout(vbox1);

   QGroupBox *groupBox2 = new QGroupBox(trUtf8("Текст"));
   
    QLabel *text2 = new QLabel(tr("Текст"));

    QVBoxLayout *vbox2 = new QVBoxLayout;
    vbox->addWidget(text2);
    vbox->addStretch(1);
    groupBox->setLayout(vbox2);
}

Один отобразить получается через setCentralWidget(groupBox1); , а вот как два ?
P.S. извиняюсь если пример плохой.
Записан
Dendy
Гость
« Ответ #1 : Декабрь 28, 2009, 05:16 »

Смотря как вам нужно чтоб они рассполагались. В любом случае результат будет примерно такой:

Код
C++ (Qt)
MainWindow::MainWindow()
{
   QLayout * layout = new Q...Layout // depends how result should look like
 
   QGroupBox * oneBox = new QGroupBox;
   layout->addWidget( oneBox );
 
   QGroupBox * otherBox = new QGroupBox;
   layout->addWidget( otherBox );
 
   QWidget * centralWidget = new QWidget;
   centralWidget->setLayout( layout );
   setCentralWidget( centralWidget );
}
 
Записан
vexar
Гость
« Ответ #2 : Январь 11, 2010, 08:01 »

Смотря как вам нужно чтоб они рассполагались. В любом случае результат будет примерно такой:

Код
C++ (Qt)
MainWindow::MainWindow()
{
   QLayout * layout = new Q...Layout // depends how result should look like
 
   QGroupBox * oneBox = new QGroupBox;
   layout->addWidget( oneBox );
 
   QGroupBox * otherBox = new QGroupBox;
   layout->addWidget( otherBox );
 
   QWidget * centralWidget = new QWidget;
   centralWidget->setLayout( layout );
   setCentralWidget( centralWidget );
}
 

Данный пример не подходит или я что-то не так делаю.
Вот например попробуй тоже самое с QLabel проделать.
Записан
ilot
Гость
« Ответ #3 : Январь 11, 2010, 08:08 »

Данный пример не подходит или я что-то не так делаю.
Вот например попробуй тоже самое с QLabel проделать.
Ты что-то не так делаешь. Dendy все правильно написал. Тебе нужно только вместо
Код:
QLayout * layout = new Q...Layout;
написать
Код:
QLayout * layout = new QVBoxLayout;
чтобы получить то, что ты хочешь в первом примере.
Записан
vexar
Гость
« Ответ #4 : Январь 11, 2010, 08:30 »

Ага, это я не так что-то делал  Улыбающийся

Возник второй вопрос. А как теперь в GroupBox добавить виджеты ?
Записан
ilot
Гость
« Ответ #5 : Январь 11, 2010, 08:35 »

Точно также, только теперь layout с созданными элементами устанавливаешь не на MainWindow, на GroupBox
Код:
oneBox->setLayout(layout);
Записан
vexar
Гость
« Ответ #6 : Январь 11, 2010, 09:21 »

Все спасибо. Тему можно закрыть.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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