Есть формочка с объектом QDateTimeEdit и QCheckBox.
Необходимо сделать так, чтобы до нажатия чекбокса дата была неактивной, т.е. без значений для того чтобы параметры даты не передавались затем в процедуру.
Каким образом это можно реализовать?
Пробовались методы типа setDisable, setVisible и тп, но кроме сообщения о закрытии приложения, положительных эффектов не наблюдалось.
worktest.h
#ifndef WORKTEST_H
#define WORKTEST_H
#include <QWidget>
class QCheckBox;
class QDateTimeEdit;
class Worktest:public QWidget
{
Q_OBJECT
public:
Worktest(QWidget *parent = 0);
private slots:
void event(int);
private:
QDateTimeEdit *date_edit;
QCheckBox *check_btn;
};
#endif;
worktest.cpp
#include "worktest.h"
#include <QtGui>
Worktest::Worktest(QWidget *parent)
: QWidget(parent)
{
QFrame *frameout = new QFrame;
frameout->setGeometry(QRect(0, 0, 100, 100));
QDateTimeEdit *date_edit=new QDateTimeEdit(frameout);
QCheckBox *check_btn= new QCheckBox(frameout);
check_btn->setGeometry(QRect(3, 25, 50, 20));
check_btn->setText("active");
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(frameout);
setLayout(layout);
setWindowTitle(tr("test PROGA"));
setMinimumSize(QSize(150, 70));
setMaximumSize(QSize(150, 70));
connect(check_btn, SIGNAL(stateChanged(int)), this, SLOT(event(int)));
}
void Worktest::event(int s)
{
check_btn->checkState()==s;
if (s==1)
{
date_edit->setHidden(false);
}
else
{
date_edit->setHidden(true);
}
}
main.cpp
#include <QApplication>
#include "worktest.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Worktest worktest;
worktest.show();
return app.exec();
}