S
SchwarzeWolfin
сама программа до безобразия проста и бессмысленна,но суть не в этом. и т.к. в Qt раньше работать не приходилось возникло некоторое недопонимание. объясните чайнику как правильно работать с наследованием,чтобы в дальнейшем избегать подобных ошибок (в данном случае проблема со строкой return app.exec())
Код:
#include <QtGui>
using namespace std;
class MyApplication: QApplication{
public:
MyApplication(int&,char**);
~MyApplication();
public slots:
void resultClicked(QCheckBox*box1,QCheckBox*box2,QMessageBox*mbox,QVBoxLayout*layout1){
if(box1->isChecked())
if(box2->isChecked())
mbox->setText("you like apples & oranges");
else
mbox->setText("you like apples");
else
if(box2->isChecked())
mbox->setText("you like oranges");
else
mbox->setText("you don't like this fruits");
}
};
int main(int argc, char *argv[])
{
MyApplication app(argc,argv);
QWidget *window=new QWidget;
window->setWindowTitle("What fruits do you like?");
QLabel *label=new QLabel ("What fruits do you like?");
QCheckBox *box1=new QCheckBox("apples");
QCheckBox *box2=new QCheckBox("oranges");
QPushButton *result=new QPushButton("Result");
QMessageBox *mbox=new QMessageBox;
QVBoxLayout *layout1=new QVBoxLayout;
QVBoxLayout *layout2=new QVBoxLayout;
QVBoxLayout *layout3=new QVBoxLayout;
QVBoxLayout *layout4=new QVBoxLayout;
layout2->addWidget(label);
layout3->addWidget(box1);
layout3->addWidget(box2);
layout4->addWidget(result);
layout1->addLayout(layout2);
layout1->addLayout(layout3);
layout1->addLayout(layout4);
layout1->addWidget(mbox);
window->setLayout(layout1);
QObject::connect(result,SIGNAL(clicked()),qApp,SLOT(resultClicked()));
window->show();
return app.exec();
}