Spec-Zone.ru › Qt

Класс QCalendarWidget

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

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

Общие типы

Перечисление ФорматГоризонтальнойШапки { ОднобуквенныеДниНедели, КороткоеИмяДнейНедели, ПолноеИмяДнейНедели, БезГоризонтальнойШапки }
Перечисление РежимВыделения { БезВыделения, ОднократноеВыделение }
Перечисление ФорматВертикальнойШапки { НомераНедель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 год, int месяц)
void установитьДиапазонДат(QDate min, QDate max)
void установитьВидимостьСетки(bool отображать)
void установитьВидимостьПанелиНавигации(bool видимость)
void установитьВыбраннуюДату(QDate дата)
void показатьСледующийМесяц()
void показатьСледующийГод()
void показатьПредыдущийМесяц()
void показатьПредыдущийГод()
void отобразитьВыбраннуюДату()
void показатьТекущуюДату()

Сигналы

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

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

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

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

virtual bool обработатьСобитие(QEvent *событие) override
virtual bool фильтрСобытий(QObject *отслеживаемый, QEvent *событие) override
virtual void обработкаНажатияКлавиши(QKeyEvent *событие) override
virtual void обработкаНажатияМыши(QMouseEvent *событие) override
virtual void обработкаИзмененияРазмеры(QResizeEvent *событие) 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)

Этот сигнал испускается всякий раз, когда пользователь нажимает клавишу Возврат или Ввод или дважды щелкает по дате 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

Рисует ячейку, указанную заданной date, используя заданного painter и rect.

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

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

void QCalendarWidget::setDateTextFormat(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().

[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.2/qcalendarwidget.html

Spec-Zone.ru

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