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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как отобразить QGroupBox  (Прочитано 3422 раз)
Tricitron
Гость
« : Август 03, 2012, 12:07 »

Не получается отобразить QGroupBox с элементами. Надо сделать так:  QWidget - QVBoxLayout - QGroupBox.

Как на QGroupBox добавить QPushButton

Код:
#include <QtGui>

int main (int argc, char** argv)
{
    QApplication app(argc, argv);
    QWidget wgt;

    QPushButton* pbtA = new QPushButton("Button 1");
    QPushButton* pbtB = new QPushButton("Button 2");
    QPushButton* pbtC = new QPushButton("Button 3");

    QGroupBox* gbA = new QGroupBox("&Group Push Buttons");

    QVBoxLayout *vboxLayoutA = new QVBoxLayout;

    vboxA->addWidget(pbtA);
    vboxA->addWidget(pbtB);
    vboxA->addWidget(pbtC);


    vboxLayoutA->addWidget(gbA);

    gbA->setLayout(vboxLayoutA);

    wgt.setLayout(vboxLayoutA);
    wgt.show();

    return app.exec();

}
Записан
mutineer
Гость
« Ответ #1 : Август 03, 2012, 12:09 »

Переменная vboxA не определена
Записан
Tricitron
Гость
« Ответ #2 : Август 03, 2012, 12:15 »

не правильно написал,

Код:
#include <QtGui>

int main (int argc, char** argv)
{
    QApplication app(argc, argv);
    QWidget wgt;

    QPushButton* pbtA = new QPushButton("Button 1");
    QPushButton* pbtB = new QPushButton("Button 2");
    QPushButton* pbtC = new QPushButton("Button 3");

    QGroupBox* gbA = new QGroupBox("&Group Push Buttons");

    QVBoxLayout *vboxLayoutA = new QVBoxLayout;

    vboxLayoutA->addWidget(pbtA);
    vboxLayoutA->addWidget(pbtB);
    vboxLayoutA->addWidget(pbtC);


    vboxLayoutA->addWidget(gbA);

    gbA->setLayout(vboxLayoutA);

    wgt.setLayout(vboxLayoutA);
    wgt.show();

    return app.exec();

}
Записан
mutineer
Гость
« Ответ #3 : Август 03, 2012, 12:18 »

Ты добавляешь групбокс в лейаут, а потом задаешь этот же лейаут этому же групбоксу. Это какая-то глупость - групбокс не сможет отобразиться сам внутри себя. Посмотри доку по QGroupBox, там есть пример
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Август 03, 2012, 12:28 »

лэйаут может относиться только к одному виджету
Код
C++ (Qt)
#include <QtGui>
 
int main (int argc, char** argv)
{
   QApplication app(argc, argv);
 
   QPushButton* pbtA = new QPushButton("Button 1");
   QPushButton* pbtB = new QPushButton("Button 2");
   QPushButton* pbtC = new QPushButton("Button 3");
 
   QGroupBox gbA("&Group Push Buttons");
 
   QVBoxLayout *vboxLayoutA = new QVBoxLayout(&gbA);
 
   vboxLayoutA->addWidget(pbtA);
   vboxLayoutA->addWidget(pbtB);
   vboxLayoutA->addWidget(pbtC);
   gbA.show();
 
   return app.exec();
}
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Tricitron
Гость
« Ответ #5 : Август 03, 2012, 12:59 »

Объясните пожалуйста вот эти две строчки

Код:
QGroupBox gbA("&Group Push Buttons");
 
QVBoxLayout *vboxLayoutA = new QVBoxLayout(&gbA);
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Август 03, 2012, 13:11 »

первая - создаем групбокс на стеке (в main главный виджет необязательно создавать в куче), вторая - устанавливаем лэйаут на групбокс
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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