Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Акось от Февраль 28, 2012, 16:29



Название: QT Croupbox
Отправлено: Акось от Февраль 28, 2012, 16:29
Здравствуйте! я хотела спросить у вас насчет groupBox. Нужно создать label, combobox<-horizontal;  dva groupbox<-horizontal,  i buttony("Ok" i "Cancel") <-toje horizontal. а вот эти три horizontal layouta raspolojeny vertikal'no. ya napisala kod, no kogda kompiliruyu vydaet owibku addChild layout layout "" has already parent;    В чем проблема? Спасибо)

vot kod v Dialog.cpp:

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    label = new QLabel("Printer: ");
    cbox = new QComboBox();
    cbox->addItem("Office Printer");
    cbox->addItem("Printer Canon");
    cbox->addItem("Printer HP Laser Jet");

    QHBoxLayout *toplayout = new QHBoxLayout;
    toplayout->addWidget(label);
    toplayout->addWidget(cbox);

    rbtn1 = new QRadioButton("Landscape");
    rbtn2 = new QRadioButton("Portrait");

    gbox1 = new QGroupBox("Page Orientation");
    QVBoxLayout *grouplayout = new QVBoxLayout(gbox1);
    grouplayout->addWidget(rbtn1);
    grouplayout->addWidget(rbtn2);

    rbtn3 = new QRadioButton("Black and White");
    rbtn4 = new QRadioButton("Color");

    gbox2 = new QGroupBox("Color Options");
    QVBoxLayout *grouplayout1 = new QVBoxLayout;
    grouplayout1->addWidget(rbtn3);
    grouplayout1->addWidget(rbtn4);

    QHBoxLayout *middlelayout = new QHBoxLayout;
    middlelayout->addLayout(grouplayout);
    middlelayout->addLayout(grouplayout1);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addLayout(toplayout);
    layout->addLayout(middlelayout);

    btn1 = new QPushButton("Ok");
    btn2 = new QPushButton("Cancel");

    QHBoxLayout *bottomLayout = new QHBoxLayout;
    bottomLayout->addSpacerItem(new QSpacerItem(40,10));
    bottomLayout->addWidget(btn1);
    bottomLayout->addWidget(btn2);

    QVBoxLayout *outerlayout = new QVBoxLayout;
    outerlayout->addLayout(layout);
    outerlayout->addSpacerItem(new QSpacerItem(1,15));
    outerlayout->addLayout(bottomLayout);

    setLayout(outerlayout);
}

Dialog::~Dialog()
{

}


Название: Re: QT Croupbox
Отправлено: mutineer от Февраль 28, 2012, 16:46
на какие строки ругается?


Название: Re: QT Croupbox
Отправлено: Акось от Февраль 28, 2012, 16:52
на какие строки ругается?

ни на какие не знаю просто внизу появляется вот такая ошибка:

Запускается C:\Qt\2010.05\qt\printing-build-desktop\debug\printing.exe...
QLayout::addChildLayout: layout "" already has a parent
C:\Qt\2010.05\qt\printing-build-desktop\debug\printing.exe завершился с кодом -1073741819

и выходит какое-то окно с ошибкой "Инструкция по адресу"0х0059bb39" обратилась к памяти по адресу "0х00000000". Память не может быть "read""


Название: Re: QT Croupbox
Отправлено: mutineer от Февраль 28, 2012, 16:58
QVBoxLayout *grouplayout = new QVBoxLayout(gbox1);
...
middlelayout->addLayout(grouplayout);

Убери парента у grouplayout


Название: Re: QT Croupbox
Отправлено: kambala от Февраль 28, 2012, 17:02
вместо middlelayout->addLayout(grouplayout) надо middlelayout->addWidget(gbox1)


Название: Re: QT Croupbox
Отправлено: Акось от Февраль 28, 2012, 17:11
QVBoxLayout *grouplayout = new QVBoxLayout(gbox1);
...
middlelayout->addLayout(grouplayout);

Убери парента у grouplayout

Spasibo!!! programma zarabotala))) poyavilsya drugoi vopros) как можно задать в groupbox тему например, Page Orientation: Landscape ili Portrait;  Color Options: Black and White ili Color?  Landscape, portrait, black and white, color - это наши радиобаттоны, а что насчет Page Orientation i Color Options? Спасибо


Название: Re: QT Croupbox
Отправлено: mutineer от Февраль 28, 2012, 17:26
QVBoxLayout *grouplayout = new QVBoxLayout(gbox1);
...
middlelayout->addLayout(grouplayout);

Убери парента у grouplayout

Spasibo!!! programma zarabotala))) poyavilsya drugoi vopros) как можно задать в groupbox тему например, Page Orientation: Landscape ili Portrait;  Color Options: Black and White ili Color?  Landscape, portrait, black and white, color - это наши радиобаттоны, а что насчет Page Orientation i Color Options? Спасибо

Ниче не понял


Название: Re: QT Croupbox
Отправлено: kambala от Февраль 28, 2012, 19:14
для начала надо посмотреть на доступные методы QGroupBox (и QWidget), ещё можно стилями пользоваться