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