Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QCALENDARWIDGET_H
00043 #define QCALENDARWIDGET_H
00044
00045 #include <QtGui/qwidget.h>
00046 #include <QtCore/qdatetime.h>
00047
00048 QT_BEGIN_HEADER
00049
00050 QT_BEGIN_NAMESPACE
00051
00052 QT_MODULE(Gui)
00053
00054 #ifndef QT_NO_CALENDARWIDGET
00055
00056 class QDate;
00057 class QTextCharFormat;
00058 class QCalendarWidgetPrivate;
00059
00060 class Q_GUI_EXPORT QCalendarWidget : public QWidget
00061 {
00062 Q_OBJECT
00063 Q_ENUMS(Qt::DayOfWeek)
00064 Q_ENUMS(HorizontalHeaderFormat)
00065 Q_ENUMS(VerticalHeaderFormat)
00066 Q_ENUMS(SelectionMode)
00067 Q_PROPERTY(QDate selectedDate READ selectedDate WRITE setSelectedDate)
00068 Q_PROPERTY(QDate minimumDate READ minimumDate WRITE setMinimumDate)
00069 Q_PROPERTY(QDate maximumDate READ maximumDate WRITE setMaximumDate)
00070 Q_PROPERTY(Qt::DayOfWeek firstDayOfWeek READ firstDayOfWeek WRITE setFirstDayOfWeek)
00071 Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible)
00072 Q_PROPERTY(SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
00073 Q_PROPERTY(HorizontalHeaderFormat horizontalHeaderFormat READ horizontalHeaderFormat WRITE setHorizontalHeaderFormat)
00074 Q_PROPERTY(VerticalHeaderFormat verticalHeaderFormat READ verticalHeaderFormat WRITE setVerticalHeaderFormat)
00075 Q_PROPERTY(bool headerVisible READ isHeaderVisible WRITE setHeaderVisible STORED false DESIGNABLE false)
00076 Q_PROPERTY(bool navigationBarVisible READ isNavigationBarVisible WRITE setNavigationBarVisible)
00077 Q_PROPERTY(bool dateEditEnabled READ isDateEditEnabled WRITE setDateEditEnabled)
00078 Q_PROPERTY(int dateEditAcceptDelay READ dateEditAcceptDelay WRITE setDateEditAcceptDelay)
00079
00080 public:
00081 enum HorizontalHeaderFormat {
00082 NoHorizontalHeader,
00083 SingleLetterDayNames,
00084 ShortDayNames,
00085 LongDayNames
00086 };
00087
00088 enum VerticalHeaderFormat {
00089 NoVerticalHeader,
00090 ISOWeekNumbers
00091 };
00092
00093 enum SelectionMode {
00094 NoSelection,
00095 SingleSelection
00096 };
00097
00098 explicit QCalendarWidget(QWidget *parent = 0);
00099 ~QCalendarWidget();
00100
00101 virtual QSize sizeHint() const;
00102 virtual QSize minimumSizeHint() const;
00103
00104 QDate selectedDate() const;
00105
00106 int yearShown() const;
00107 int monthShown() const;
00108
00109 QDate minimumDate() const;
00110 void setMinimumDate(const QDate &date);
00111
00112 QDate maximumDate() const;
00113 void setMaximumDate(const QDate &date);
00114
00115 Qt::DayOfWeek firstDayOfWeek() const;
00116 void setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek);
00117
00118
00119 bool isHeaderVisible() const;
00120 void setHeaderVisible(bool show);
00121
00122 inline bool isNavigationBarVisible() const { return isHeaderVisible(); }
00123
00124 bool isGridVisible() const;
00125
00126 SelectionMode selectionMode() const;
00127 void setSelectionMode(SelectionMode mode);
00128
00129 HorizontalHeaderFormat horizontalHeaderFormat() const;
00130 void setHorizontalHeaderFormat(HorizontalHeaderFormat format);
00131
00132 VerticalHeaderFormat verticalHeaderFormat() const;
00133 void setVerticalHeaderFormat(VerticalHeaderFormat format);
00134
00135 QTextCharFormat headerTextFormat() const;
00136 void setHeaderTextFormat(const QTextCharFormat &format);
00137
00138 QTextCharFormat weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const;
00139 void setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format);
00140
00141 QMap<QDate, QTextCharFormat> dateTextFormat() const;
00142 QTextCharFormat dateTextFormat(const QDate &date) const;
00143 void setDateTextFormat(const QDate &date, const QTextCharFormat &format);
00144
00145 bool isDateEditEnabled() const;
00146 void setDateEditEnabled(bool enable);
00147
00148 int dateEditAcceptDelay() const;
00149 void setDateEditAcceptDelay(int delay);
00150
00151 protected:
00152 bool event(QEvent *event);
00153 bool eventFilter(QObject *watched, QEvent *event);
00154 void mousePressEvent(QMouseEvent *event);
00155 void resizeEvent(QResizeEvent * event);
00156 void keyPressEvent(QKeyEvent * event);
00157
00158 virtual void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const;
00159 void updateCell(const QDate &date);
00160 void updateCells();
00161
00162 public Q_SLOTS:
00163 void setSelectedDate(const QDate &date);
00164 void setDateRange(const QDate &min, const QDate &max);
00165 void setCurrentPage(int year, int month);
00166 void setGridVisible(bool show);
00167 void setNavigationBarVisible(bool visible);
00168 void showNextMonth();
00169 void showPreviousMonth();
00170 void showNextYear();
00171 void showPreviousYear();
00172 void showSelectedDate();
00173 void showToday();
00174
00175 Q_SIGNALS:
00176 void selectionChanged();
00177 void clicked(const QDate &date);
00178 void activated(const QDate &date);
00179 void currentPageChanged(int year, int month);
00180
00181 private:
00182 Q_DECLARE_PRIVATE(QCalendarWidget)
00183 Q_DISABLE_COPY(QCalendarWidget)
00184
00185 Q_PRIVATE_SLOT(d_func(), void _q_slotShowDate(const QDate &date))
00186 Q_PRIVATE_SLOT(d_func(), void _q_slotChangeDate(const QDate &date))
00187 Q_PRIVATE_SLOT(d_func(), void _q_slotChangeDate(const QDate &date, bool changeMonth))
00188 Q_PRIVATE_SLOT(d_func(), void _q_editingFinished())
00189 Q_PRIVATE_SLOT(d_func(), void _q_prevMonthClicked())
00190 Q_PRIVATE_SLOT(d_func(), void _q_nextMonthClicked())
00191 Q_PRIVATE_SLOT(d_func(), void _q_yearEditingFinished())
00192 Q_PRIVATE_SLOT(d_func(), void _q_yearClicked())
00193 Q_PRIVATE_SLOT(d_func(), void _q_monthChanged(QAction *act))
00194
00195 };
00196
00197 #endif // QT_NO_CALENDARWIDGET
00198
00199 QT_END_NAMESPACE
00200
00201 QT_END_HEADER
00202
00203 #endif // QCALENDARWIDGET_H
00204