This is an example of a type popup calendar, you must display the calendar when you press the button on the form. This class can be reutilized in anywhere in your code. In this example this is launched in main function.
/*
* DatePopup.h
*
* Created on: Aug 29, 2009
* Author: jordenysp
*/
#ifndef DATEPOPUP_H_
#define DATEPOPUP_H_
#include <QDialog>
#include <QDate>
class QCalendarWidget;
class QDialogButtonBox;
class QVBoxLayout;
class DatePopup : public QDialog{
Q_OBJECT
public:
DatePopup(QWidget *parent=0);
QDate selectedDate() const;
private:
QWidget *widget;
QCalendarWidget *calendarWidget;
QDialogButtonBox* buttonBox;
QVBoxLayout *verticalLayout;
};
#endif /* DATEPOPUP_H_ */
/*
* DatePopup.cpp
*
* Created on: Aug 29, 2009
* Author: jordenysp
*/
#include <QtGui>
#include "DatePopup.h"
DatePopup::DatePopup(QWidget *parent)
:QDialog(parent, Qt::Popup)
{
setSizeGripEnabled(false);
resize(260, 230);
widget = new QWidget(this);
widget->setObjectName(QString::fromUtf8("widget"));
widget->setGeometry(QRect(0, 10, 258, 215));
verticalLayout = new QVBoxLayout(widget);
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
verticalLayout->setContentsMargins(0, 0, 0, 0);
calendarWidget = new QCalendarWidget(widget);
calendarWidget->setObjectName(QString::fromUtf8("calendarWidget"));
verticalLayout->addWidget(calendarWidget);
buttonBox = new QDialogButtonBox(widget);
buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
buttonBox->setOrientation(Qt::Horizontal);
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
verticalLayout->addWidget(buttonBox);
QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
QObject::connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
}
QDate DatePopup::selectedDate() const{
return calendarWidget->selectedDate();
}
#include <QtGui>
#include <QDate>
#include <QApplication>
#include "DatePopup.h"
#include <iostream>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DatePopup popup;
int result = popup.exec();
if(result == QDialog::Accepted){
QDate date = popup.selectedDate();
std::cout<< date.year() <<std::endl;
std::cout<< date.month() <<std::endl;
std::cout<< date.day() <<std::endl;
}
return a.exec();
}