Название: 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), ещё можно стилями пользоваться
|