Spec-Zone.ru › Qt 5.11

Класс QCalendarWidget

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

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

Открытые типы

перечисление HorizontalHeaderFormat { SingleLetterDayNames, ShortDayNames, LongDayNames, NoHorizontalHeader }
перечисление SelectionMode { NoSelection, SingleSelection }
перечисление VerticalHeaderFormat { ISOWeekNumbers, NoVerticalHeader }

Свойства

  • dateEditAcceptDelay : int
  • dateEditEnabled : bool
  • firstDayOfWeek : Qt::DayOfWeek
  • gridVisible : bool
  • horizontalHeaderFormat : HorizontalHeaderFormat
  • maximumDate : QDate
  • minimumDate : QDate
  • navigationBarVisible : bool
  • selectedDate : QDate
  • selectionMode : SelectionMode
  • verticalHeaderFormat : VerticalHeaderFormat
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

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

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
  • 214 открытых функций унаследовано от QWidget
  • 34 открытых функций унаследовано от 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 public slots унаследованных от QWidget
  • 1 public slot унаследованный от 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 event(QEvent *event) override
virtual bool eventFilter(QObject *watched, QEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
  • 35 защищённых функций унаследованных от QWidget
  • 9 защищённых функций унаследованных от QObject
  • 1 защищённая функция унаследованная от QPaintDevice

Дополнительные унаследованные члены

  • 1 общедоступная переменная унаследованная от QObject
  • 5 статические общедоступные члены унаследованные от QWidget
  • 10 статических общедоступных членов унаследованных от QObject
  • 1 защищённый слот унаследованный от QWidget
  • 2 защищённых переменных унаследованных от QObject
  • 1 защищённый тип унаследованный от QPaintDevice

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

Класс 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.

перечисление 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.

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

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

[virtual] 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. Формат символов может быть пустым, если дата не отображается особенно.

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

Переопределено из QWidget::event().

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

Переопределено из QObject::eventFilter().

QTextCharFormat QCalendarWidget::headerTextFormat() const

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

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

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

Переопределено из QWidget::keyPressEvent().

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

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

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

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

Переопределено из QWidget::resizeEvent().

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

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

Spec-Zone.ru

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