Класс QCalendarWidget
Класс QCalendarWidget предоставляет виджет календаря на основе месяца, позволяющий пользователю выбирать дату. Подробнее...
| Заголовок: | #include <QCalendarWidget> |
| qmake: | QT += widgets |
| С момента: | Qt 4.2 |
| Наследует: | QWidget |
Открытые типы
| перечисление | HorizontalHeaderFormat { SingleLetterDayNames, ShortDayNames, LongDayNames, NoHorizontalHeader } |
| перечисление | SelectionMode { NoSelection, SingleSelection } |
| перечисление | VerticalHeaderFormat { ISOWeekNumbers, NoVerticalHeader } |
Свойства
|
|
Открытые функции
| 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
- 34 открытых функций унаследовано от 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 | 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 общедоступная переменная унаследованная от QObject
- 5 статические общедоступные члены унаследованные от QWidget
- 10 статических общедоступных членов унаследованных от QObject
- 1 защищённый слот унаследованный от QWidget
- 2 защищённых переменных унаследованных от QObject
- 1 защищённый тип унаследованный от QPaintDevice
Подробное описание
Класс 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.
перечисление 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 | verticalHeaderFormat() const |
| void | setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat format) |
Документация по членам-функциям
QCalendarWidget::QCalendarWidget(QWidget *parent = nullptr)
Создает виджет календаря с заданным parent.
Виджет инициализируется текущим месяцем и годом, и выбранная дата — сегодняшняя.
См. также setCurrentPage().
[virtual] QCalendarWidget::~QCalendarWidget()
Удаляет виджет календаря.
[signal] void QCalendarWidget::activated(const QDate &date)
Этот сигнал излучается всякий раз, когда пользователь нажимает клавиши Return или Enter или дважды щелкает по дате date в виджете календаря.
[signal] void QCalendarWidget::clicked(const QDate &date)
Этот сигнал излучается при щелчке мыши. Дата, по которой был щелчок, указана в date. Сигнал излучается только при щелчке по корректной дате, например, даты не находятся вне диапазона от minimumDate() до maximumDate(). Если режим выбора — NoSelection, этот сигнал не будет излучен.
[signal] void QCalendarWidget::currentPageChanged(int year, int month)
Этот сигнал излучается при изменении отображаемого месяца. Новый год и месяц передаются в качестве параметров.
См. также setCurrentPage().
QMap<QDate, QTextCharFormat> QCalendarWidget::dateTextFormat() const
Возвращает QMap из QDate в QTextCharFormat, показывающий все даты, которые используют специальный формат, изменяющий их отображение.
См. также setDateTextFormat().
QTextCharFormat QCalendarWidget::dateTextFormat(const QDate &date) const
Возвращает QTextCharFormat для date. Формат символов может быть пустым, если дата не отображается особенно.
[override virtual protected] bool QCalendarWidget::event(QEvent *event)
Переопределено из QWidget::event().
[override virtual protected] bool QCalendarWidget::eventFilter(QObject *watched, QEvent *event)
Переопределено из QObject::eventFilter().
QTextCharFormat QCalendarWidget::headerTextFormat() const
Возвращает формат символов текста для отображения заголовка.
См. также setHeaderTextFormat().
[override virtual protected] void QCalendarWidget::keyPressEvent(QKeyEvent *event)
Переопределено из QWidget::keyPressEvent().
[override virtual] QSize QCalendarWidget::minimumSizeHint() const
Переопределено из QWidget::minimumSizeHint().
int QCalendarWidget::monthShown() const
Возвращает отображаемый в настоящее время месяц. Месяцы пронумерованы от 1 до 12.
См. также yearShown() и setCurrentPage().
[override virtual protected] void QCalendarWidget::mousePressEvent(QMouseEvent *event)
Переопределено из QWidget::mousePressEvent().
[virtual protected] void QCalendarWidget::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const
Отображает ячейку, указанную заданной датой, используя заданного 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)
Отображает заданный месяц заданного года, не изменяя выбранную дату. Используйте функцию 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)
Обновляет ячейку, указанную данной датой, если обновления не отключены и ячейка не скрыта.
Эта функция была введена в 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/archives/qt-5.11/qcalendarwidget.html