Spec-Zone.ru › Qt 5.9

Класс QCalendarWidget

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

Заголовок: #include <QCalendarWidget>
qmake: QT += widgets
С момента: Qt 4.2
Наследует: QWidget
  • Список всех членов, включая унаследованные

Типы

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

Свойства

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

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

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
  • 214 публичных функций унаследовано от QWidget
  • 32 публичных функций унаследовано от 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()
  • 19 публичных слотов унаследовано от QWidget
  • 1 публичный слот унаследовано от QObject

Сигналы

void activated(const QDate &date)
void clicked(const QDate &date)
void currentPageChanged(int year, int month)
void selectionChanged()
  • 3 сигнала унаследовано от QWidget
  • 2 сигнала унаследовано от QObject

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

virtual void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const
void updateCell(const QDate &date)
void updateCells()

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

virtual bool событие(QEvent *событие)
virtual bool eventFilter(QObject *watched, QEvent *event)
virtual void keyPressEvent(QKeyEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual 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)

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

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

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

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

Этот сигнал испускается при изменении отображаемого месяца. Новый год year и месяц 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().

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

Spec-Zone.ru

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