Spec-Zone.ru › Qt 5.15

Класс QCalendarWidget

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

Заголовок: #include <QCalendarWidget>
qmake: QT += widgets
С момента: Qt 4.2
Наследует: QWidget

Этот класс был представлен в Qt 4.2.

  • Список всех членов, включая наследуемые члены

Типы публичного доступа

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

Свойства

  • dateEditAcceptDelay : int
  • dateEditEnabled : bool
  • firstDayOfWeek : Qt::DayOfWeek
  • gridVisible : bool
  • horizontalHeaderFormat : HorizontalHeaderFormat
  • maximumDate : QDate
  • minimumDate : QDate
  • navigationBarVisible : bool
  • selectedDate : QDate
  • selectionMode : SelectionMode
  • verticalHeaderFormat : VerticalHeaderFormat

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

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

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

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

Сигналы

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

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

virtual void рисоватьЯчейку(QPainter *рисовальщик, const QRect &прямоугольник, const QDate &дата) const
void обновитьЯчейку(const 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's для некоторых специальных дней недели, специальной даты или для отображения заголовков.

Только подмножество свойств в 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.

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

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().

[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)

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

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

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

[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(const 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, const QDate &date) const

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

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

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

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().

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

Spec-Zone.ru

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