Класс QWizardPage
Класс QWizardPage является базовым классом для страниц мастера. Подробнее...
| Заголовок: | #include <QWizardPage> |
| qmake: | QT += widgets |
| С версии: | Qt 4.3 |
| Наследует: | QWidget |
Свойства
Открытые функции
| QWizardPage(QWidget *parent = Q_NULLPTR) | |
| ~QWizardPage() | |
| QString | buttonText(QWizard::WizardButton which) const |
| virtual void | cleanupPage() |
| virtual void | initializePage() |
| bool | isCommitPage() const |
| virtual bool | isComplete() const |
| bool | isFinalPage() const |
| virtual int | nextId() const |
| QPixmap | pixmap(QWizard::WizardPixmap which) const |
| void | setButtonText(QWizard::WizardButton which, const QString &text) |
| void | setCommitPage(bool commitPage) |
| void | setFinalPage(bool finalPage) |
| void | setPixmap(QWizard::WizardPixmap which, const QPixmap &pixmap) |
| void | setSubTitle(const QString &subTitle) |
| void | setTitle(const QString &title) |
| QString | subTitle() const |
| QString | title() const |
| virtual bool | validatePage() |
- 214 открытых функций, унаследованных от QWidget
- 32 открытых функции, унаследованных от QObject
- 14 открытых функций, унаследованных от QPaintDevice
Сигналы
| void | completeChanged() |
Защищенные функции
| QVariant | field(const QString &name) const |
| void | registerField(const QString &name, QWidget *widget, const char *property = Q_NULLPTR, const char *changedSignal = Q_NULLPTR) |
| void | setField(const QString &name, const QVariant &value) |
| QWizard * | wizard() const |
- 35 защищенных функций, унаследованных от QWidget
- 9 защищенных функций, унаследованных от QObject
- 1 защищенная функция, унаследованная от QPaintDevice
Дополнительные унаследованные члены
- 19 public slots унаследованных от QWidget
- 1 public slot унаследованный от QObject
- 5 статических открытых членов, унаследованных от QWidget
- 11 статических открытых членов, унаследованных от QObject
- 1 защищенный слот, унаследованный от QWidget
Подробное описание
Класс QWizardPage является базовым классом для страниц мастера.
QWizard представляет собой мастер. Каждая страница — это QWizardPage. При создании собственных мастеров вы можете использовать QWizardPage напрямую или наследовать от него для большего контроля.
Страница имеет следующие атрибуты, которые отображаются QWizard: заголовок (title), подзаголовок (subTitle) и набор изображений (набор изображений). Подробности см. в разделе Элементы страницы мастера. После добавления страницы в мастер (с помощью QWizard::addPage() или QWizard::setPage()), wizard() возвращает указатель на связанный объект QWizard.
Страница предоставляет пять виртуальных функций, которые можно переопределить для предоставления пользовательского поведения:
- initializePage() вызывается для инициализации содержимого страницы, когда пользователь нажимает кнопку «Далее» мастера. Если вы хотите получить значение по умолчанию страницы на основании введённых пользователем данных на предыдущих страницах, то переопределяйте эту функцию.
- cleanupPage() вызывается для сброса содержимого страницы, когда пользователь нажимает кнопку «Назад» мастера.
- validatePage() проверяет страницу, когда пользователь нажимает «Далее» или «Готово». Она часто используется для вывода сообщения об ошибке, если пользователь ввёл неполные или недопустимые данные.
- nextId() возвращает идентификатор следующей страницы. Это полезно при создании нелинейных мастеров, которые позволяют разные пути перехода на основании информации, предоставленной пользователем.
- isComplete() вызывается для определения того, должны ли быть включены кнопки «Далее» и/или «Готово» или отключены. Если вы переопределяете isComplete(), также убедитесь, что completeChanged() излучается всякий раз, когда изменяется состояние завершённости.
Обычно кнопки «Далее» и «Готово» мастера взаимоисключают друг друга. Если isFinalPage() возвращает true, доступна кнопка «Готово»; в противном случае доступна кнопка «Далее». По умолчанию isFinalPage() истинна только тогда, когда nextId() возвращает -1. Если вы хотите отобразить «Далее» и «Готово» одновременно для страницы (позволяя пользователю выполнить «раннее завершение»), вызовите setFinalPage(true) на этой странице. Для мастеров, поддерживающих ранние завершения, возможно, также потребуется установить параметры HaveNextButtonOnLastPage и HaveFinishButtonOnEarlyPages для мастера.
Во многих мастерах содержимое одной страницы может влиять на значения по умолчанию полей на последующей странице. Чтобы упростить общение между страницами, QWizard поддерживает «механизм полей», который позволяет зарегистрировать поле (например, QLineEdit) на странице и получить доступ к его значению с любой страницы. Поля глобальны для всего мастера и упрощают доступ любой странице к информации, хранящейся на другой странице, без необходимости помещать всю логику в QWizard или чтобы страницы явно знали друг о друге. Поля регистрируются с помощью registerField() и могут быть получены в любой момент с помощью field() и setField().
END_OF_DOCUMENT_MARKERСм. также QWizard, Пример мастера классов, и Пример мастера лицензий.
Документация по свойствам
subTitle : QString
Это свойство содержит подзаголовок страницы.
Подзаголовок отображается в QWizard между заголовком и собственно страницей. Подзаголовки необязательны. В ClassicStyle и ModernStyle использование подзаголовков необходимо для отображения заголовка. В MacStyle подзаголовок отображается как метка текста непосредственно над собственно страницей.
Подзаголовок может быть обычным текстом или HTML, в зависимости от значения свойства QWizard::subTitleFormat.
По умолчанию это свойство содержит пустую строку.
Функции доступа:
| QString | subTitle() const |
| void | setSubTitle(const QString &subTitle) |
См. также title, QWizard::IgnoreSubTitles и Элементы страницы мастера.
title : QString
Это свойство содержит заголовок страницы.
Заголовок отображается в QWizard над собственно страницей. У всех страниц должен быть заголовок.
Заголовок может быть обычным текстом или HTML, в зависимости от значения свойства QWizard::titleFormat.
По умолчанию это свойство содержит пустую строку.
Функции доступа:
| QString | title() const |
| void | setTitle(const QString &title) |
См. также subTitle и Элементы страницы мастера.
Документация по членам-функциям
QWizardPage::QWizardPage(QWidget *parent = Q_NULLPTR)
Конструирует страницу мастера с заданным parent.
Когда страница вставляется в мастер с помощью QWizard::addPage() или QWizard::setPage(), родитель автоматически устанавливается как мастер.
См. также wizard().
QWizardPage::~QWizardPage()
Деструктор.
QString QWizardPage::buttonText(QWizard::WizardButton which) const
Возвращает текст на кнопке which на этой странице.
Если текст был задан с помощью setButtonText(), возвращается этот текст. В противном случае, если текст был задан с помощью QWizard::setButtonText(), возвращается этот текст.
По умолчанию текст на кнопках зависит от QWizard::wizardStyle. Например, на macOS кнопка Далее называется Продолжить.
См. также setButtonText(), QWizard::buttonText() и QWizard::setButtonText().
[virtual] void QWizardPage::cleanupPage()
Эта виртуальная функция вызывается QWizard::cleanupPage() при переходе пользователя на другую страницу нажатием кнопки Назад (если опция QWizard::IndependentPages не установлена).
Реализация по умолчанию сбрасывает поля страницы к их исходным значениям (значениям, имевшимся до вызова initializePage()).
См. также QWizard::cleanupPage(), initializePage() и QWizard::IndependentPages.
[signal] void QWizardPage::completeChanged()
Этот сигнал излучается всякий раз, когда состояние завершения страницы (т.е. значение isComplete()) изменяется.
Если вы переопределяете isComplete(), убедитесь, что излучаете completeChanged() всякий раз, когда значение isComplete() изменяется, чтобы гарантировать обновление QWizard состояния своих кнопок.
См. также isComplete().
[protected] QVariant QWizardPage::field(const QString &name) const
Возвращает значение поля с именем name.
Эта функция может использоваться для доступа к полям на любой странице мастера. Она эквивалентна вызову wizard()->field(name).
Пример:
void OutputFilesPage::initializePage()
{
QString className = field("className").toString();
headerLineEdit->setText(className.toLower() + ".h");
implementationLineEdit->setText(className.toLower() + ".cpp");
outputDirLineEdit->setText(QDir::toNativeSeparators(QDir::tempPath()));
} См. также QWizard::field(), setField() и registerField().
[virtual] void QWizardPage::initializePage()
Эта виртуальная функция вызывается QWizard::initializePage() для подготовки страницы перед её отображением в результате вызова QWizard::restart() или в результате нажатия пользователем кнопки Далее. (Однако, если установлена опция QWizard::IndependentPages, эта функция вызывается только в первый раз при отображении страницы.)
Переопределяя эту функцию, вы можете гарантировать правильную инициализацию полей страницы на основе полей с предыдущих страниц. Например:
void OutputFilesPage::initializePage()
{
QString className = field("className").toString();
headerLineEdit->setText(className.toLower() + ".h");
implementationLineEdit->setText(className.toLower() + ".cpp");
outputDirLineEdit->setText(QDir::toNativeSeparators(QDir::tempPath()));
} Реализация по умолчанию ничего не делает.
См. также QWizard::initializePage(), cleanupPage() и QWizard::IndependentPages.
bool QWizardPage::isCommitPage() const
Возвращает true , если эта страница является страницей подтверждения; в противном случае возвращает false.
См. также setCommitPage().
[virtual] bool QWizardPage::isComplete() const
Эта виртуальная функция вызывается QWizard для определения, следует ли включать или отключать кнопки Далее или Готово.
Реализация по умолчанию возвращает true, если все обязательные поля заполнены; в противном случае она возвращает false.
Если вы переопределяете эту функцию, убедитесь, что излучаете completeChanged() из остальной части вашей реализации всякий раз, когда значение isComplete() изменяется. Это гарантирует, что QWizard обновляет состояние своих кнопок. Пример переопределения доступен здесь.
См. также completeChanged() и isFinalPage().
bool QWizardPage::isFinalPage() const
Эта функция вызывается QWizard для определения, следует ли отображать кнопку Готово для этой страницы или нет.
По умолчанию возвращает true , если нет следующей страницы (т.е. nextId() возвращает -1); в противном случае возвращает false.
Явно вызвав setFinalPage(true), вы можете позволить пользователю выполнить «раннюю финализацию».
См. также isComplete() и QWizard::HaveFinishButtonOnEarlyPages.
[virtual] int QWizardPage::nextId() const
Эта виртуальная функция вызывается QWizard::nextId() для определения, на какую страницу следует перейти при нажатии пользователем кнопки Далее.
Возвращаемое значение — ID следующей страницы или -1, если следующей страницы нет.
По умолчанию эта функция возвращает наименьший ID, больший, чем ID текущей страницы, или -1, если такого ID нет.
Переопределяя эту функцию, вы можете указать динамический порядок страниц. Например:
int IntroPage::nextId() const
{
if (evaluateRadioButton->isChecked()) {
return LicenseWizard::Page_Evaluate;
} else {
return LicenseWizard::Page_Register;
}
} См. также QWizard::nextId().
QPixmap QWizardPage::pixmap(QWizard::WizardPixmap which) const
Возвращает пиктограмму, установленную для роли which.
Пиктограммы также можно установить для всего мастера с помощью QWizard::setPixmap(), в этом случае они применяются ко всем страницам, которые не указывают свою пиктограмму.
См. также setPixmap(), QWizard::pixmap() и Элементы страницы мастера.
[protected] void QWizardPage::registerField(const QString &name, QWidget *widget, const char *property = Q_NULLPTR, const char *changedSignal = Q_NULLPTR)
Создаёт поле с именем name, связанное с заданным property заданного widget. С этого момента это свойство становится доступным с помощью field() и setField().
Поля глобальны для всего мастера и упрощают доступ любой отдельной странице к информации, хранящейся на другой странице, без необходимости размещать всю логику в QWizard или явного указания страницам друг о друге.
Если name оканчивается звездочкой (*), поле является обязательным. Когда на странице есть обязательные поля, кнопки Далее и/или Готово активируются только при заполнении всех обязательных полей. Для этого необходимо указать changedSignal, чтобы сообщить QWizard о необходимости повторной проверки значения, хранящегося в обязательном поле.
QWizard знает самые распространённые виджеты Qt. Для них (или их подклассов) не нужно указывать property или changedSignal. В таблице ниже перечислены эти виджеты:
| Виджет | Свойство | Сигнал уведомления о изменении |
|---|---|---|
| QAbstractButton | bool checked | toggled() |
| QAbstractSlider | int value | valueChanged() |
| QComboBox | int currentIndex | currentIndexChanged() |
| QDateTimeEdit | QDateTime dateTime | dateTimeChanged() |
| QLineEdit | QString text | textChanged() |
| QListWidget | int currentRow | currentRowChanged() |
| QSpinBox | int value | valueChanged() |
Вы можете использовать QWizard::setDefaultProperty() для добавления записей в эту таблицу или для переопределения существующих записей.
Для того, чтобы считать поле «заполненным», QWizard просто проверяет, что его текущее значение не равно его исходному значению (значению, которое оно имело до вызова initializePage()). Для QLineEdit также проверяется, что hasAcceptableInput() возвращает true, чтобы учесть любой валидатор или маску.
QWizard механизм обязательных полей предоставляется для удобства. Его можно обойти, переопределив QWizardPage::isComplete().
См. также field(), setField() и QWizard::setDefaultProperty().
void QWizardPage::setButtonText(QWizard::WizardButton which, const QString &text)
Устанавливает текст на кнопке which в text на этой странице.
По умолчанию, текст на кнопках зависит от QWizard::wizardStyle, но может быть переопределён для всего мастера с помощью QWizard::setButtonText().
См. также buttonText(), QWizard::setButtonText() и QWizard::buttonText().
void QWizardPage::setCommitPage(bool commitPage)
Устанавливает эту страницу как страницу подтверждения, если commitPage истинно; в противном случае, устанавливает её как обычную страницу.
Страница подтверждения — это страница, представляющая действие, которое нельзя отменить, нажав Назад или Отмена.
Кнопка Подтвердить заменяет кнопку Далее на странице подтверждения. Нажатие этой кнопки просто вызывает QWizard::next(), точно так же, как нажатие Далее.
Страница, введённая непосредственно со страницы подтверждения, имеет отключенную кнопку Назад.
См. также isCommitPage().
[protected] void QWizardPage::setField(const QString &name, const QVariant &value)
Устанавливает значение поля с именем name на value.
Эта функция может использоваться для установки полей на любой странице мастера. Она эквивалентна вызову wizard()->setField(name, value).
См. также QWizard::setField(), field() и registerField().
void QWizardPage::setFinalPage(bool finalPage)
Явно устанавливает эту страницу как конечную, если finalPage истинно.
После вызова setFinalPage(true), isFinalPage() возвращает true и кнопка Готово отображается (и активирована, если isComplete() возвращает true).
После вызова setFinalPage(false), isFinalPage() возвращает true если nextId() возвращает -1; в противном случае, она возвращает false.
См. также isFinalPage(), isComplete() и QWizard::HaveFinishButtonOnEarlyPages.
void QWizardPage::setPixmap(QWizard::WizardPixmap which, const QPixmap &pixmap)
Устанавливает растровое изображение для роли which на pixmap.
Растровые изображения используются QWizard при отображении страницы. Какие растровые изображения фактически используются, зависит от стиля мастера.
Растровые изображения также могут быть установлены для всего мастера с помощью QWizard::setPixmap(), в этом случае они применяются для всех страниц, которые не задают растровое изображение.
См. также pixmap(), QWizard::setPixmap() и Элементы страницы мастера.
[virtual] bool QWizardPage::validatePage()
Эта виртуальная функция вызывается QWizard::validateCurrentPage() при нажатии пользователем Далее или Готово для выполнения некоторой последней проверки. Если она возвращает true, следующая страница отображается (или мастер завершается); в противном случае, текущая страница остается открытой.
По умолчанию, реализация возвращает true.
Когда это возможно, обычно лучше отключать кнопку Далее или Готово (указав обязательные поля или переопределив isComplete()), чем переопределять validatePage().
См. также QWizard::validateCurrentPage() и isComplete().
[protected] QWizard *QWizardPage::wizard() const
Возвращает мастера, связанного с этой страницей, или 0, если эта страница ещё не была вставлена в QWizard.
См. также QWizard::addPage() и QWizard::setPage().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qwizardpage.html