Spec-Zone.ru › Qt 5.9

Класс QWizardPage

Класс QWizardPage является базовым классом для страниц мастера. Подробнее...

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

Свойства

  • subTitle : QString
  • title : QString
  • 59 свойств, унаследованных от QWidget
  • 1 свойство, унаследованное от QObject

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

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()
  • 3 сигнала, унаследованных от QWidget
  • 2 сигнала, унаследованных от QObject

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

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

Spec-Zone.ru

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