Класс QCalendarWidget
Класс QCalendarWidget предоставляет виджет календаря, отображаемый по месяцам, позволяющий пользователю выбирать дату. Подробнее...
| Заголовок: | #include <QCalendarWidget> |
| qmake: | QT += widgets |
| С момента: | Qt 4.2 |
| Наследует: | QWidget |
Типы
| Перечисление | ФорматГоризонтальнойЗаголовка { КраткоеНаименованиеДнейНедели, КороткоеНаименованиеДнейНедели, ПолноеНаименованиеДнейНедели, БезГоризонтальнойЗаголовка } |
| Перечисление | РежимВыбор { БезВыбор, ОднократныйВыбор } |
| Перечисление | ФорматВертикальнойЗаголовка { НомераНедельISO, БезВертикальнойЗаголовка } |
Свойства
|
|
Открытые функции
| QCalendarWidget(QWidget *parent = Q_NULLPTR) | |
| ~QCalendarWidget() | |
| int | dateEditAcceptDelay() const |
| QMap<QDate, QTextCharFormat> | dateTextFormat() const |
| QTextCharFormat | dateTextFormat(const QDate &date) const |
| Qt::DayOfWeek | firstDayOfWeek() const |
| QTextCharFormat | headerTextFormat() const |
| HorizontalHeaderFormat | horizontalHeaderFormat() const |
| bool | isDateEditEnabled() const |
| bool | isGridVisible() const |
| bool | isNavigationBarVisible() const |
| QDate | maximumDate() const |
| QDate | minimumDate() const |
| int | monthShown() const |
| QDate | selectedDate() const |
| SelectionMode | selectionMode() const |
| void | setDateEditAcceptDelay(int delay) |
| void | setDateEditEnabled(bool enable) |
| void | setDateTextFormat(const QDate &date, const QTextCharFormat &format) |
| void | setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek) |
| void | setHeaderTextFormat(const QTextCharFormat &format) |
| void | setHorizontalHeaderFormat(HorizontalHeaderFormat format) |
| void | setMaximumDate(const QDate &date) |
| void | setMinimumDate(const QDate &date) |
| void | setSelectionMode(SelectionMode mode) |
| void | setVerticalHeaderFormat(VerticalHeaderFormat format) |
| void | setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format) |
| VerticalHeaderFormat | verticalHeaderFormat() const |
| QTextCharFormat | weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const |
| int | yearShown() const |
Реализованные публичные функции
| virtual QSize | minimumSizeHint() const |
| virtual QSize | sizeHint() const |
- 214 публичных функций унаследовано от QWidget
- 32 публичных функций унаследовано от QObject
- 14 публичных функций унаследовано от QPaintDevice
Публичные слоты
| void | setCurrentPage(int year, int month) |
| void | setDateRange(const QDate &min, const QDate &max) |
| void | setGridVisible(bool show) |
| void | setNavigationBarVisible(bool visible) |
| void | setSelectedDate(const QDate &date) |
| void | showNextMonth() |
| void | showNextYear() |
| void | showPreviousMonth() |
| void | showPreviousYear() |
| void | showSelectedDate() |
| void | showToday() |
Сигналы
| void | activated(const QDate &date) |
| void | clicked(const QDate &date) |
| void | currentPageChanged(int year, int month) |
| void | selectionChanged() |
Защищенные функции
| virtual void | paintCell(QPainter *painter, const QRect &rect, const QDate &date) const |
| void | updateCell(const QDate &date) |
| void | updateCells() |
Переопределённые защищённые функции
| virtual bool | событие(QEvent *событие) |
| virtual bool | eventFilter(QObject *watched, QEvent *event) |
| virtual void | keyPressEvent(QKeyEvent *event) |
| virtual void | mousePressEvent(QMouseEvent *event) |
| virtual void | resizeEvent(QResizeEvent *event) |
- 35 защищенные функции, унаследованные от QWidget
- 9 защищенные функции, унаследованные от QObject
- 1 защищенная функция, унаследованная от QPaintDevice
Дополнительные унаследованные члены
- 5 статические публичные члены, унаследованные от QWidget
- 11 статические публичные члены, унаследованные от QObject
- 1 защищённый слот, унаследованный от QWidget
Подробное описание
Класс QCalendarWidget предоставляет виджет календаря, отображающий месяц, позволяющий пользователю выбирать дату.
Виджет инициализируется текущим месяцем и годом, но QCalendarWidget предоставляет несколько публичных слотов для изменения отображаемого года и месяца.
По умолчанию выбрана сегодняшняя дата, и пользователь может выбрать дату с помощью мыши и клавиатуры. Текущую выбранную дату можно получить с помощью функции selectedDate(). Можно ограничить выбор пользователя заданным диапазоном дат, установив свойства minimumDate и maximumDate. В качестве альтернативы, оба свойства можно установить за один раз, используя удобный слот setDateRange(). Установите свойство selectionMode в значение NoSelection, чтобы запретить пользователю вообще выбирать дату. Обратите внимание, что дату также можно выбрать программно, используя слот setSelectedDate().
Текущий отображаемый месяц и год можно получить, используя функции monthShown() и yearShown() соответственно.
Новый созданный виджет календаря использует сокращенные названия дней недели, и суббота и воскресенье выделены красным цветом. Сетка календаря не отображается. Выводятся номера недель, и первый день недели в сетке соответствует первому дню недели для локали календаря.
Формат отображения дней можно изменить на сокращенные названия (например, "Пн" вместо "Понедельник"), установив свойство horizontalHeaderFormat в значение QCalendarWidget::SingleLetterDayNames. Установка этого свойства в значение QCalendarWidget::LongDayNames отобразит полные названия дней недели.
Номера недель можно убрать, установив свойство verticalHeaderFormat в значение QCalendarWidget::NoVerticalHeader.
Сетку календаря можно включить, установив свойство gridVisible в true, используя функцию setGridVisible():
QCalendarWidget *calendar; calendar->setGridVisible(true); |
Наконец, день в первой колонке можно изменить с помощью функции setFirstDayOfWeek().
Класс QCalendarWidget также предоставляет три сигнала: selectionChanged(), activated() и currentPageChanged(), что позволяет реагировать на взаимодействия пользователя.
Отображение заголовков, дней недели или отдельных дней можно существенно настроить, установив QTextCharFormat для некоторых особых дней недели, специальной даты или для отображения заголовков.
Только подмножество свойств в QTextCharFormat используется виджетом календаря. В настоящее время свойства foreground, background и font используются для определения отображения отдельных ячеек в виджете.
См. также QDate, QDateEdit и QTextCharFormat.
Документация по типам членов
перечисление QCalendarWidget::HorizontalHeaderFormat
Этот тип перечисления определяет различные форматы отображения горизонтальной заголовка.
| Константа | Значение | Описание |
|---|---|---|
QCalendarWidget::SingleLetterDayNames |
1 |
Заголовок отображает однобуквенное сокращение названий дней (например, П для понедельника). |
QCalendarWidget::ShortDayNames |
2 |
Заголовок отображает короткое сокращение названий дней (например, Пн для понедельника). |
QCalendarWidget::LongDayNames |
3 |
Заголовок отображает полные названия дней (например, понедельник). |
QCalendarWidget::NoHorizontalHeader |
0 |
Заголовок скрыт. |
См. также horizontalHeaderFormat() и VerticalHeaderFormat.
enum QCalendarWidget::SelectionMode
Это перечисление описывает типы выбора, предлагаемые пользователю для выбора дат в календаре.
| Константа | Значение | Описание |
|---|---|---|
QCalendarWidget::NoSelection |
0 |
Даты нельзя выбрать. |
QCalendarWidget::SingleSelection |
1 |
Можно выбрать одну дату. |
См. также selectionMode.
enum QCalendarWidget::VerticalHeaderFormat
Этот тип перечисления определяет различные форматы отображения вертикального заголовка.
| Константа | Значение | Описание |
|---|---|---|
QCalendarWidget::ISOWeekNumbers |
1 |
Заголовок отображает номера ISO-недель, как описано в QDate::weekNumber(). |
QCalendarWidget::NoVerticalHeader |
0 |
Заголовок скрыт. |
См. также verticalHeaderFormat() и HorizontalHeaderFormat.
Документация свойств
dateEditAcceptDelay : int
Это свойство хранит время, в течение которого неактивное редактирование даты отображается перед принятием его содержимого.
Если редактирование даты виджета календаря включено, это свойство определяет продолжительность (в миллисекундах), в течение которой редактирование даты остается открытым после последнего ввода пользователя. После истечения этого времени, дата, указанная в редактировании даты, принимается, и всплывающее окно закрывается.
По умолчанию задержка установлена в 1500 миллисекунд (1,5 секунды).
Это свойство было добавлено в Qt 4.3.
Функции доступа:
| int | dateEditAcceptDelay() const |
| void | setDateEditAcceptDelay(int delay) |
dateEditEnabled : bool
Это свойство определяет, включено ли всплывающее окно редактирования даты.
Если это свойство включено, нажатие клавиши без модификаторов вызовет всплывающее окно редактирования даты, если виджет календаря имеет фокус, позволяя пользователю указать дату в формате, определенном текущим языковым стандартом.
По умолчанию это свойство включено.
Редактирование даты имеет более простой вид, чем QDateEdit, но позволяет пользователю перемещаться между полями с помощью клавиш влево и вправо, увеличивать и уменьшать отдельные поля с помощью клавиш вверх и вниз и вводить значения непосредственно с помощью цифровых клавиш.
Это свойство было добавлено в Qt 4.3.
Функции доступа:
| bool | isDateEditEnabled() const |
| void | setDateEditEnabled(bool enable) |
См. также QCalendarWidget::dateEditAcceptDelay.
firstDayOfWeek : Qt::DayOfWeek
Это свойство содержит значение, определяющее день, отображаемый в первом столбце.
По умолчанию, день, отображаемый в первом столбце, — это первый день недели для языкового стандарта календаря.
Функции доступа:
| Qt::DayOfWeek | firstDayOfWeek() const |
| void | setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek) |
gridVisible : bool
Это свойство определяет, отображается ли сетка таблицы.
QCalendarWidget *calendar; calendar->setGridVisible(true); |
Значение по умолчанию — false.
Функции доступа:
| bool | isGridVisible() const |
| void | setGridVisible(bool show) |
horizontalHeaderFormat : HorizontalHeaderFormat
Это свойство определяет формат горизонтальной заголовка.
Значение по умолчанию — QCalendarWidget::ShortDayNames.
Функции доступа:
| HorizontalHeaderFormat | horizontalHeaderFormat() const |
| void | setHorizontalHeaderFormat(HorizontalHeaderFormat format) |
maximumDate : QDate
Это свойство хранит максимальную дату в текущем заданном диапазоне дат.
Пользователь не сможет выбрать дату, которая следует за текущей максимальной датой.
QCalendarWidget *calendar; calendar->setGridVisible(true); calendar->setMaximumDate(QDate(2006, 7, 3)); |
По умолчанию максимальная дата — последний день, который может обработать класс QDate.
При установке максимальной даты свойства minimumDate и selectedDate корректируются, если диапазон выбора становится недействительным. Если предоставленная дата не является допустимым объектом QDate, функция setMaximumDate() ничего не делает.
Функции доступа:
| QDate | maximumDate() const |
| void | setMaximumDate(const QDate &date) |
См. также setDateRange().
minimumDate : QDate
Это свойство содержит минимальную дату текущего диапазона дат.
Пользователь не сможет выбрать дату, которая предшествует текущей минимальной дате.
QCalendarWidget *calendar; calendar->setGridVisible(true); calendar->setMinimumDate(QDate(2006, 6, 19)); |
По умолчанию, минимальная дата — самая ранняя дата, которую может обработать класс QDate.
При установке минимальной даты свойства maximumDate и selectedDate корректируются, если диапазон выбора становится недействительным. Если предоставленная дата не является допустимым объектом QDate, функция setMinimumDate() ничего не делает.
Функции доступа:
| QDate | minimumDate() const |
| void | setMinimumDate(const QDate &date) |
См. также setDateRange().
navigationBarVisible : bool
Это свойство указывает, отображается ли панель навигации.
Когда это свойство равно true (значение по умолчанию), элементы управления для выбора следующего/предыдущего месяца, выбора месяца и выбора года отображаются вверху.
Если свойство установлено в false, эти элементы управления скрываются.
Это свойство было добавлено в Qt 4.3.
Функции доступа:
| bool | isNavigationBarVisible() const |
| void | setNavigationBarVisible(bool visible) |
selectedDate : QDate
Это свойство содержит текущую выбранную дату.
Выбранная дата должна находиться в диапазоне дат, заданном свойствами minimumDate и maximumDate. По умолчанию, выбранная дата — текущая дата.
Функции доступа:
| QDate | selectedDate() const |
| void | setSelectedDate(const QDate &date) |
См. также setDateRange().
selectionMode : SelectionMode
Это свойство содержит тип выбора, который может осуществлять пользователь в календаре
Когда это свойство установлено в SingleSelection, пользователь может выбрать дату в пределах допустимых минимальной и максимальной дат, используя мышь или клавиатуру.
Когда свойство установлено в NoSelection, пользователь не сможет выбирать даты, но сможет выбирать даты программно. Обратите внимание, что дата, выбранная при установке свойства в NoSelection, по-прежнему будет выбранной датой календаря.
Значение по умолчанию — SingleSelection.
Функции доступа:
| SelectionMode | selectionMode() const |
| void | setSelectionMode(SelectionMode mode) |
verticalHeaderFormat : VerticalHeaderFormat
Это свойство содержит формат вертикального заголовка.
Значение по умолчанию — QCalendarWidget::ISOWeekNumber.
Функции доступа:
| VerticalHeaderFormat | verticalHeaderFormat() const |
| void | setVerticalHeaderFormat(VerticalHeaderFormat format) |
Документация по членам-функциям
QCalendarWidget::QCalendarWidget(QWidget *parent = Q_NULLPTR)
Создаёт виджет календаря с заданным parent.
Виджет инициализируется текущим месяцем и годом, а выбранная дата — сегодняшняя.
См. также setCurrentPage().
QCalendarWidget::~QCalendarWidget()
Уничтожает виджет календаря.
[signal] void QCalendarWidget::activated(const QDate &date)
Этот сигнал испускается всякий раз, когда пользователь нажимает клавиши Ввод или Enter или дважды щелкает по дате date в виджете календаря.
[signal] void QCalendarWidget::clicked(const QDate &date)
Этот сигнал испускается при нажатии кнопки мыши. Дата, на которую была нажата кнопка мыши, указана в date. Сигнал испускается только при нажатии на допустимую дату, например, даты не находятся за пределами minimumDate() и maximumDate(). Если режим выбора — NoSelection, этот сигнал не будет испущен.
[signal] void QCalendarWidget::currentPageChanged(int year, int month)
Этот сигнал испускается при изменении отображаемого месяца. Новый год year и месяц month передаются в качестве параметров.
См. также setCurrentPage().
QMap<QDate, QTextCharFormat> QCalendarWidget::dateTextFormat() const
Возвращает QMap из QDate в QTextCharFormat, показывающий все даты, использующие специальный формат, изменяющий их отображение.
См. также setDateTextFormat().
QTextCharFormat QCalendarWidget::dateTextFormat(const QDate &date) const
Возвращает QTextCharFormat для date. Формат символов может быть пустым, если дата не отображается специально.
[virtual protected] bool QCalendarWidget::event(QEvent *event)
Переопределено из QObject::event().
[virtual protected] bool QCalendarWidget::eventFilter(QObject *watched, QEvent *event)
Переопределено из QObject::eventFilter().
QTextCharFormat QCalendarWidget::headerTextFormat() const
Возвращает формат символов текста для отображения заголовка.
См. также setHeaderTextFormat().
[virtual protected] void QCalendarWidget::keyPressEvent(QKeyEvent *event)
Переопределено из QWidget::keyPressEvent().
[virtual] QSize QCalendarWidget::minimumSizeHint() const
Переопределено из QWidget::minimumSizeHint().
int QCalendarWidget::monthShown() const
Возвращает отображаемый в настоящее время месяц. Месяцы пронумерованы от 1 до 12.
См. также yearShown() и setCurrentPage().
[virtual protected] void QCalendarWidget::mousePressEvent(QMouseEvent *event)
Переопределено из QWidget::mousePressEvent().
[virtual protected] void QCalendarWidget::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const
Рисует ячейку, указанную заданной датой date, с помощью заданного painter и rect.
[virtual protected] void QCalendarWidget::resizeEvent(QResizeEvent *event)
Переопределено из QWidget::resizeEvent().
[signal] void QCalendarWidget::selectionChanged()
Этот сигнал излучается при изменении текущей выбранной даты.
Текущая выбранная дата может быть изменена пользователем с помощью мыши или клавиатуры, или программистом с помощью setSelectedDate().
См. также selectedDate().
[slot] void QCalendarWidget::setCurrentPage(int year, int month)
Отображает заданный month заданного year без изменения выбранной даты. Используйте функцию setSelectedDate() для изменения выбранной даты.
Текущий отображаемый месяц и год можно получить, используя функции monthShown() и yearShown() соответственно.
См. также yearShown(), monthShown(), showPreviousMonth(), showNextMonth(), showPreviousYear() и showNextYear().
[slot] void QCalendarWidget::setDateRange(const QDate &min, const QDate &max)
Определяет диапазон дат, устанавливая свойства minimumDate и maximumDate.
Диапазон дат ограничивает выбор пользователя, т. е. пользователь может выбрать только даты в указанном диапазоне. Обратите внимание, что
QCalendarWidget *calendar; calendar->setDateRange(min, max);
аналогично
QCalendarWidget *calendar; calendar->setMinimumDate(min); calendar->setMaximumDate(max);
Если любой из параметров min или max не является допустимым объектом QDate, эта функция ничего не делает.
См. также setMinimumDate() и setMaximumDate().
void QCalendarWidget::setDateTextFormat(const QDate &date, const QTextCharFormat &format)
Устанавливает формат, используемый для отображения заданной даты date, на указанный формат format.
Если date равно null, все форматы дат очищаются.
См. также dateTextFormat().
void QCalendarWidget::setHeaderTextFormat(const QTextCharFormat &format)
Устанавливает формат символов текста для отображения заголовка на format. Если вы также установите формат текста дня недели, цвет переднего и заднего плана этого формата будет иметь приоритет над форматом заголовка. Другая информация о форматировании все равно будет определяться форматом заголовка.
См. также headerTextFormat().
void QCalendarWidget::setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format)
Устанавливает формат символов текста для отображения дня недели dayOfWeek на format. Формат будет иметь приоритет над форматом заголовка в случае цвета переднего и заднего плана. Другая информация о форматировании текста берется из формата заголовка.
См. также weekdayTextFormat() и setHeaderTextFormat().
[slot] void QCalendarWidget::showNextMonth()
Отображает следующий месяц по отношению к текущему отображаемому месяцу. Обратите внимание, что выбранная дата не изменяется.
См. также showPreviousMonth(), setCurrentPage() и setSelectedDate().
[slot] void QCalendarWidget::showNextYear()
Показывает текущий отображаемый месяц в следующем году по отношению к текущему отображаемому году. Обратите внимание, что выбранная дата не изменяется.
См. также showPreviousYear(), setCurrentPage() и setSelectedDate().
[slot] void QCalendarWidget::showPreviousMonth()
Отображает предыдущий месяц относительно текущего отображаемого месяца. Обратите внимание, что выбранная дата не изменяется.
См. также showNextMonth(), setCurrentPage() и setSelectedDate().
[slot] void QCalendarWidget::showPreviousYear()
Отображает текущий отображаемый месяц в предыдущем году по отношению к текущему отображаемому году. Обратите внимание, что выбранная дата не изменяется.
См. также showNextYear(), setCurrentPage() и setSelectedDate().
[slot] void QCalendarWidget::showSelectedDate()
Отображает месяц выбранной даты.
См. также selectedDate() и setCurrentPage().
[slot] void QCalendarWidget::showToday()
Отображает месяц даты сегодняшнего дня.
См. также selectedDate() и setCurrentPage().
[virtual] QSize QCalendarWidget::sizeHint() const
Переопределено из QWidget::sizeHint().
[protected] void QCalendarWidget::updateCell(const QDate &date)
Обновляет ячейку, указанную заданной датой, если обновления не отключены и ячейка не скрыта.
Эта функция была введена в Qt 4.4.
См. также updateCells(), yearShown() и monthShown().
[protected] void QCalendarWidget::updateCells()
Обновляет все видимые ячейки, если обновления не отключены.
Эта функция была введена в Qt 4.4.
См. также updateCell().
QTextCharFormat QCalendarWidget::weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const
Возвращает форматирование символов текста для отображения дня недели dayOfWeek.
См. также setWeekdayTextFormat() и headerTextFormat().
int QCalendarWidget::yearShown() const
Возвращает год текущего отображаемого месяца. Месяцы пронумерованы от 1 до 12.
См. также monthShown() и setCurrentPage().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qcalendarwidget.html