QDate FatCRMInputDialog::getDate(const QString &caption, const QString &labelText, const QDate &value, bool *ok) { QDialog dialog; dialog.setWindowTitle(caption); QVBoxLayout *layout = new QVBoxLayout(&dialog); QLabel *label = new QLabel(&dialog); label->setText(labelText); QDateEditEx *dateEdit = new QDateEditEx(&dialog); dateEdit->setCalendarPopup(true); dateEdit->setDate(value); QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, &dialog); layout->addWidget(label); layout->addWidget(dateEdit); layout->addStretch(); layout->addWidget(buttonBox); QObject::connect(buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept())); QObject::connect(buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject())); const bool result = (dialog.exec() == QDialog::Accepted); if (ok) { *ok = result; } if (result) return dateEdit->date(); return QDate(); }