Класс QCalendarWidget
Класс QCalendarWidget предоставляет виджет календаря на основе месяца, позволяющий пользователю выбирать дату. Подробнее...
| Заголовок: | #include <QCalendarWidget> |
| qmake: | QT += widgets |
| С момента: | Qt 4.2 |
| Наследуется от: | QWidget |
Открытые типы
| Перечисление | ФорматГоризонтальнойЗаголовка { ОднобуквенныеДниНедели, КороткоеНаименованиеДнейНедели, ПолноеНаименованиеДнейНедели, БезГоризонтальнойЗаголовка } |
| Перечисление | РежимВыбора { БезВыбора, ОдинВыбор } |
| Перечисление | ФорматВертикальнойЗаголовка { НомераНедельISO, БезВертикальнойЗаголовка } |
Свойства
|
|
Открытые функции
| QCalendarWidget(QWidget *parent = nullptr) | |
| virtual | ~QCalendarWidget() |
| int | dateEditAcceptDelay() const |
| QMap<QDate, QTextCharFormat> | dateTextFormat() const |
| QTextCharFormat | dateTextFormat(const QDate &date) const |
| Qt::DayOfWeek | firstDayOfWeek() const |
| QTextCharFormat | headerTextFormat() const |
| QCalendarWidget::HorizontalHeaderFormat | horizontalHeaderFormat() const |
| bool | isDateEditEnabled() const |
| bool | isGridVisible() const |
| bool | isNavigationBarVisible() const |
| QDate | maximumDate() const |
| QDate | minimumDate() const |
| int | monthShown() const |
| QDate | selectedDate() const |
| QCalendarWidget::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(QCalendarWidget::HorizontalHeaderFormat format) |
| void | setMaximumDate(const QDate &date) |
| void | setMinimumDate(const QDate &date) |
| void | setSelectionMode(QCalendarWidget::SelectionMode mode) |
| void | setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat format) |
| void | setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format) |
| QCalendarWidget::VerticalHeaderFormat | verticalHeaderFormat() const |
| QTextCharFormat | weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const |
| int | yearShown() const |
Реализованные общедоступные функции
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
- 214 общедоступных функций, унаследованных от QWidget
- 31 общедоступной функции, унаследованной от 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() |
- 19 общедоступных слотов, унаследованных от QWidget
- 1 общедоступного слота, унаследованного от QObject
Сигналы
| void | activated(const QDate &date) |
| void | clicked(const QDate &date) |
| void | currentPageChanged(int year, int month) |
| void | selectionChanged() |
Статические общедоступные члены
| const QMetaObject | staticMetaObject |
- 5 статических общедоступных членов, унаследованных от QWidget
- 9 статических общедоступных членов, унаследованных от QObject
Защищенные функции
| virtual void | paintCell(QPainter *painter, const QRect &rect, const QDate &date) const |
| void | updateCell(const QDate &date) |
| void | updateCells() |
Реализованные защищённые функции
| virtual bool | event(QEvent *event) override |
| virtual bool | eventFilter(QObject *watched, QEvent *event) override |
| virtual void | keyPressEvent(QKeyEvent *event) override |
| virtual void | mousePressEvent(QMouseEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
- 35 защищённых функций, унаследованных от QWidget
- 9 защищённых функций, унаследованных от QObject
- 1 защищённая функция, унаследованная от QPaintDevice
Дополнительные унаследованные члены
- 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 для некоторых особых дней недели, специальной даты или для отрисовки заголовков.
END_OF_DOCUMENT_MARKERТолько подмножество свойств в QTextCharFormat используется виджетом календаря. В настоящее время свойства foreground, background и font используются для определения отрисовки отдельных ячеек в виджете.
См. также QDate, QDateEdit и QTextCharFormat.
Документация по типам членов
enum 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.
Функции доступа:
| QCalendarWidget::HorizontalHeaderFormat | horizontalHeaderFormat() const |
| void | setHorizontalHeaderFormat(QCalendarWidget::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.
Функции доступа:
| QCalendarWidget::SelectionMode | selectionMode() const |
| void | setSelectionMode(QCalendarWidget::SelectionMode mode) |
verticalHeaderFormat : VerticalHeaderFormat
Это свойство определяет формат вертикального заголовка.
Значение по умолчанию — QCalendarWidget::ISOWeekNumber.
Функции доступа:
| QCalendarWidget::VerticalHeaderFormat | формаВертикальногоЗаголовка() const |
| void | установитьФормуВертикальногоЗаголовка(QCalendarWidget::VerticalHeaderFormat форма) |
Документация по членам-функциям
QCalendarWidget::QCalendarWidget(QWidget *родитель = nullptr)
Создаёт виджет календаря с заданным родителем.
Виджет инициализируется текущим месяцем и годом, а выбранная дата — сегодня.
См. также setCurrentPage().
[virtual] QCalendarWidget::~QCalendarWidget()
Уничтожает виджет календаря.
[signal] void QCalendarWidget::activated(const QDate &дата)
Этот сигнал испускается всякий раз, когда пользователь нажимает клавишу Return или Enter, или дважды щелкает по дате в виджете календаря.
[signal] void QCalendarWidget::clicked(const QDate &дата)
Этот сигнал испускается при нажатии кнопки мыши. Дата, по которой был произведен щелчок, указана параметром дата. Сигнал испускается только при нажатии на допустимую дату, например, даты не выходят за пределы minimumDate() и maximumDate(). Если режим выбора — NoSelection, этот сигнал не будет испущен.
[signal] void QCalendarWidget::currentPageChanged(int год, int месяц)
Этот сигнал испускается при изменении отображаемого месяца. Новый год и месяц передаются в качестве параметров.
См. также setCurrentPage().
QMap<QDate, QTextCharFormat> QCalendarWidget::формаТекстаДаты() const
Возвращает QMap из QDate в QTextCharFormat, показывающий все даты, использующие специальный формат, который изменяет их отображение.
См. также setDateTextFormat().
QTextCharFormat QCalendarWidget::формаТекстаДаты(const QDate &дата) const
Возвращает QTextCharFormat для даты. Формат символа может быть пустым, если дата не отображается особо.
[override virtual protected] bool QCalendarWidget::event(QEvent *событие)
Переопределено из QWidget::event().
[override virtual protected] bool QCalendarWidget::eventFilter(QObject *отслеживаемый, QEvent *событие)
Переопределено из QObject::eventFilter().
QTextCharFormat QCalendarWidget::формаТекстаЗаголовка() const
Возвращает формат символьного текста для отображения заголовка.
См. также setHeaderTextFormat().
[override virtual protected] void QCalendarWidget::keyPressEvent(QKeyEvent *событие)
Переопределено из QWidget::keyPressEvent().
[override virtual] QSize QCalendarWidget::минимальныйРазмерПодсказки() const
Переопределено из QWidget::minimumSizeHint().
int QCalendarWidget::отображаемыйМесяц() const
Возвращает отображаемый в данный момент месяц. Месяцы пронумерованы от 1 до 12.
См. также yearShown() и setCurrentPage().
[override virtual protected] void QCalendarWidget::mousePressEvent(QMouseEvent *событие)
Переопределено из QWidget::mousePressEvent().
[virtual protected] void QCalendarWidget::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const
Отображает ячейку, заданную заданной датой date, используя заданный painter и rect.
[override 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().
[override virtual] QSize QCalendarWidget::sizeHint() const
Переопределено из QWidget::sizeHint().
[protected] void QCalendarWidget::updateCell(const QDate &date)
Обновляет ячейку, указанную заданной датой 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.12/qcalendarwidget.html