Spec-Zone.ru › Qt 6.0

Класс QCalendarWidget

Класс QCalendarWidget предоставляет виджет календаря на основе месяца, позволяющий пользователю выбрать дату. Подробнее...

Заголовок: #include <QCalendarWidget>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QWidget
  • Список всех членов, включая унаследованные

Типы Public

перечисление ФорматГоризонтальногоЗаголовка { ЕдинаяБукваДнейНедели, КороткоеНазваниеДнейНедели, ПолноеНазваниеДнейНедели, БезГоризонтальногоЗаголовка }
перечисление РежимВыбора { БезВыбора, ОдинВыбор }
перечисление ФорматВертикальногоЗаголовка { НомераНедельISO, БезВертикальногоЗаголовка }

Свойства

  • ЗадержкаПринятияДаты : int
  • ВключенРежимИзмененияДаты : bool
  • ПервыйДеньНедели : Qt::DayOfWeek
  • ВидимостьСетки : bool
  • ФорматГоризонтальногоЗаголовка : ФорматГоризонтальногоЗаголовка
  • МаксимальнаяДата : QDate
  • МинимальнаяДата : QDate
  • ВидимостьПанелиНавигации : bool
  • ВыбраннаяДата : QDate
  • РежимВыбора : РежимВыбора
  • ФорматВертикальногоЗаголовка : ФорматВертикальногоЗаголовка

Открытые функции

QCalendarWidget(QWidget *parent = nullptr)
virtual ~QCalendarWidget()
int ЗадержкаПринятияДаты() const
QMap<QDate, QTextCharFormat> ФорматТекстаДаты() const
QTextCharFormat ФорматТекстаДаты(QDate date) const
Qt::DayOfWeek ПервыйДеньНедели() const
QTextCharFormat ФорматТекстаЗаголовка() const
QCalendarWidget::ФорматГоризонтальногоЗаголовка ФорматГоризонтальногоЗаголовка() const
bool ВключенРежимИзмененияДаты() const
bool ВидимостьСетки() const
bool ВидимостьПанелиНавигации() const
QDate МаксимальнаяДата() const
QDate МинимальнаяДата() const
int ОтображаемыйМесяц() const
QDate ВыбраннаяДата() const
QCalendarWidget::РежимВыбора РежимВыбора() const
void УстановитьЗадержкуПринятияДаты(int delay)
void УстановитьВключенРежимИзмененияДаты(bool enable)
void УстановитьФорматТекстаДаты(QDate date, const QTextCharFormat &format)
void УстановитьПервыйДеньНедели(Qt::DayOfWeek dayOfWeek)
void УстановитьФорматТекстаЗаголовка(const QTextCharFormat &format)
void УстановитьФорматГоризонтальногоЗаголовка(QCalendarWidget::ФорматГоризонтальногоЗаголовка format)
void УстановитьМаксимальнуюДату(QDate date)
void УстановитьМинимальнуюДату(QDate date)
void УстановитьРежимВыбора(QCalendarWidget::РежимВыбора mode)
void УстановитьФорматВертикальногоЗаголовка(QCalendarWidget::ФорматВертикальногоЗаголовка format)
void УстановитьФорматТекстаДняНедели(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format)
QCalendarWidget::ФорматВертикальногоЗаголовка ФорматВертикальногоЗаголовка() const
QTextCharFormat ФорматТекстаДняНедели(Qt::DayOfWeek dayOfWeek) const
int ОтображаемыйГод() const

Переопределенные открытые функции

virtual QSize МинимальныйРазмер() const override
virtual QSize Размер() const override

Открытые слоты

void установитьТекущуюСтраницу(int year, int month)
void установитьДиапазонДат(QDate min, QDate max)
void установитьВидимостьСетки(bool show)
void установитьВидимостьПанелиНавигации(bool visible)
void установитьВыбраннуюДату(QDate date)
void показатьСледующийМесяц()
void показатьСледующийГод()
void показатьПредыдущийМесяц()
void показатьПредыдущийГод()
void отобразитьВыбраннуюДату()
void показатьСегодня()

Сигналы

void активировано(QDate date)
void нажато(QDate date)
void измененаТекущаяСтраница(int year, int month)
void измененоВыделение()

Защищенные функции

virtual void рисоватьЯчейку(QPainter *painter, const QRect &rect, QDate date) const
void обновитьЯчейку(QDate date)
void обновитьЯчейки()

Переопределенные защищенные функции

virtual bool обработатьСобытие(QEvent *event) override
virtual bool фильтрСобытий(QObject *watched, QEvent *event) override
virtual void обработатьНажатиеКлавиши(QKeyEvent *event) override
virtual void обработатьНажатиеМыши(QMouseEvent *event) override
virtual void обработатьИзменениеРазмеры(QResizeEvent *event) override

Подробное описание

Виджет инициализируется текущим месяцем и годом, но 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.

перечисление QCalendarWidget::VerticalHeaderFormat

Это перечисление определяет различные форматы, которые может отображать вертикальный заголовок.

Постоянная Значение Описание
QCalendarWidget::ISOWeekNumbers 1 Заголовок отображает номера недель ISO, как описано в QDate::weekNumber().
QCalendarWidget::NoVerticalHeader 0 Заголовок скрыт.

См. также verticalHeaderFormat() и HorizontalHeaderFormat.

END_OF_DOCUMENT_MARKER

Документация свойств

dateEditAcceptDelay : int

Это свойство хранит время, в течение которого неактивное редактирование даты отображается, прежде чем его содержимое будет принято

Если редактирование даты в виджете календаря включено, это свойство определяет время (в миллисекундах), в течение которого редактирование даты остается открытым после последнего ввода пользователем. По истечении этого времени дата, указанная в редактировании даты, принимается, а всплывающее окно закрывается.

По умолчанию задержка установлена в 1500 миллисекунд (1,5 секунды).

Функции доступа:

int dateEditAcceptDelay() const
void setDateEditAcceptDelay(int delay)

dateEditEnabled : bool

Это свойство указывает, включено ли всплывающее окно редактирования даты

Если это свойство включено, нажатие любой клавиши (кроме модификаторных) вызовет всплывающее окно редактирования даты, если виджет календаря имеет фокус, позволяя пользователю указать дату в формате, заданном текущим языковым стандартом.

По умолчанию это свойство включено.

Редактирование даты имеет более простой вид, чем QDateEdit, но позволяет пользователю перемещаться между полями с помощью клавиш «влево» и «вправо», увеличивать и уменьшать значения отдельных полей с помощью клавиш «вверх» и «вниз», а также вводить значения напрямую с помощью цифровых клавиш.

Функции доступа:

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(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(QDate date)

См. также setDateRange().

navigationBarVisible : bool

Это свойство указывает, отображается ли панель навигации

Когда это свойство true (по умолчанию), отображаются элементы управления для перехода к следующему/предыдущему месяцу, выбору месяца и года вверху.

При установке свойства в false, эти элементы управления скрываются.

Функции доступа:

bool isNavigationBarVisible() const
void setNavigationBarVisible(bool visible)

selectedDate : QDate

Это свойство содержит текущую выбранную дату.

Выбранная дата должна находиться в диапазоне дат, заданном свойствами minimumDate и maximumDate. По умолчанию выбранной датой является текущая дата.

Функции доступа:

QDate selectedDate() const
void setSelectedDate(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().

[signal] void QCalendarWidget::activated(QDate date)

Этот сигнал испускается всякий раз, когда пользователь нажимает клавиши Ввод или Enter, или дважды щелкает по дате date в виджете календаря.

[signal] void QCalendarWidget::clicked(QDate date)

Этот сигнал испускается, когда нажимается кнопка мыши. Дата, по которой был нажат клик, указана параметром date. Сигнал испускается только при нажатии на допустимую дату, например, даты не находятся вне диапазона minimumDate() и maximumDate(). Если режим выбора равен NoSelection, этот сигнал не будет испущен.

[signal] void QCalendarWidget::currentPageChanged(int year, int month)

Этот сигнал испускается, когда текущий отображаемый месяц меняется. Новый год и месяц передаются в качестве параметров.

См. также setCurrentPage().

[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(QDate min, QDate max)

Определяет диапазон дат, устанавливая свойства minimumDate и maximumDate.

Диапазон дат ограничивает выбор пользователя, т.е. пользователь может выбирать только даты в указанном диапазоне дат. Обратите внимание, что

QCalendarWidget *calendar;

calendar->setDateRange(min, max);

аналогично

QCalendarWidget *calendar;

calendar->setMinimumDate(min);
calendar->setMaximumDate(max);

Если любой из параметров min или max не является допустимым объектом QDate, эта функция ничего не делает.

См. также setMinimumDate() и setMaximumDate().

[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] QCalendarWidget::~QCalendarWidget()

Уничтожает виджет календаря.

QMap<QDate, QTextCharFormat> QCalendarWidget::dateTextFormat() const

Возвращает QMap из QDate в QTextCharFormat, показывающий все даты, использующие специальный формат, изменяющий их отображение.

См. также setDateTextFormat().

QTextCharFormat QCalendarWidget::dateTextFormat(QDate date) const

Возвращает QTextCharFormat для date. Формат символов может быть пустым, если дата не отображается особым образом.

[override virtual protected] bool QCalendarWidget::event(QEvent *event)

Переопределяет: QWidget::event(QEvent *event).

[override virtual protected] bool QCalendarWidget::eventFilter(QObject *watched, QEvent *event)

Переопределяет: QObject::eventFilter(QObject *watched, QEvent *event).

QTextCharFormat QCalendarWidget::headerTextFormat() const

Возвращает формат символов текста для отображения заголовка.

См. также setHeaderTextFormat().

[override virtual protected] void QCalendarWidget::keyPressEvent(QKeyEvent *event)

Переопределяет: QWidget::keyPressEvent(QKeyEvent *event).

[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(QMouseEvent *event).

[virtual protected] void QCalendarWidget::paintCell(QPainter *painter, const QRect &rect, QDate date) const

Отображает ячейку, заданную данной датой, с использованием указанного painter и rect.

[override virtual protected] void QCalendarWidget::resizeEvent(QResizeEvent *event)

Переопределяет: QWidget::resizeEvent(QResizeEvent *event).

void QCalendarWidget::setDateTextFormat(QDate date, const QTextCharFormat &format)

Устанавливает формат, используемый для отображения заданной даты, на тот, который задан параметром 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().

[override virtual] QSize QCalendarWidget::sizeHint() const

Переопределяет функцию доступа к свойству: QWidget::sizeHint.

[protected] void QCalendarWidget::updateCell(QDate date)

Обновляет ячейку, указанную заданной датой date, если обновления не отключены и ячейка не скрыта.

См. также updateCells(), yearShown() и monthShown().

[protected] void QCalendarWidget::updateCells()

Обновляет все видимые ячейки, если обновления не отключены.

См. также 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-6.0/qcalendarwidget.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API