Auf dieser Seite

QWizardPage Class

Die Klasse „QWizardPage“ ist die Basisklasse für Assistentenseiten. Mehr...

Kopfzeile: #include <QWizardPage>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: QWidget

Eigenschaften

Öffentliche Funktionen

QWizardPage(QWidget *parent = nullptr)
virtual ~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()

Signale

Geschützte Funktionen

QVariant field(const QString &name) const
void registerField(const QString &name, QWidget *widget, const char *property = nullptr, const char *changedSignal = nullptr)
void setField(const QString &name, const QVariant &value)
QWizard *wizard() const

Ausführliche Beschreibung

QWizard Stellt einen Assistenten dar. Jede Seite ist eine `QWizardPage`. Wenn Sie eigene Assistenten erstellen, können Sie `QWizardPage` direkt verwenden oder eine Unterklasse davon erstellen, um mehr Kontrolle zu haben.

Eine Seite verfügt über die folgenden Attribute, die von ` QWizard` gerendert werden: ein ` title`, ein ` subTitle` und ein ` set of pixmaps`. Weitere Informationen finden Sie unter Elements of a Wizard Page. Sobald eine Seite dem Assistenten hinzugefügt wurde (mithilfe von ` QWizard::addPage()` oder ` QWizard::setPage()`), gibt ` wizard()` einen Zeiger auf das zugehörige ` QWizard `-Objekt zurück.

Die Klasse `Page` stellt fünf virtuelle Funktionen bereit, die neu implementiert werden können, um benutzerdefiniertes Verhalten zu ermöglichen:

  • initializePage() wird aufgerufen, um den Inhalt der Seite zu initialisieren, wenn der Benutzer auf die Schaltfläche „ Next “ des Assistenten klickt. Wenn Sie die Standardeinstellung der Seite aus den Eingaben des Benutzers auf vorherigen Seiten ableiten möchten, sollten Sie diese Funktion neu implementieren.
  • cleanupPage() wird aufgerufen, um den Inhalt der Seite zurückzusetzen, wenn der Benutzer im Assistenten auf die Schaltfläche „ Back “ klickt.
  • validatePage() validiert die Seite, wenn der Benutzer auf „ Next “ oder „ Finish “ klickt. Diese Funktion wird häufig verwendet, um eine Fehlermeldung anzuzeigen, falls der Benutzer unvollständige oder ungültige Informationen eingegeben hat.
  • nextId() gibt die ID der nächsten Seite zurück. Dies ist nützlich, wenn „ creating non-linear wizards “ verwendet werden, die je nach den vom Benutzer bereitgestellten Informationen unterschiedliche Navigationspfade ermöglichen.
  • isComplete() wird aufgerufen, um zu bestimmen, ob die Schaltflächen „ Next “ und/oder „ Finish “ aktiviert oder deaktiviert werden sollen. Wenn Sie „ isComplete()“ neu implementieren, stellen Sie außerdem sicher, dass „ completeChanged()“ immer dann ausgelöst wird, wenn sich der Status „complete“ ändert.

Normalerweise schließen sich die Schaltflächen „ Next “ und „ Finish “ eines Assistenten gegenseitig aus. Wenn isFinalPage() den Wert true zurückgibt, ist Finish verfügbar; andernfalls ist Next verfügbar. Standardmäßig ist „ isFinalPage()“ nur dann wahr, wenn „ nextId()“ den Wert -1 zurückgibt. Wenn Sie „ Next “ und „ Final “ für eine Seite gleichzeitig anzeigen möchten (damit der Benutzer den Assistenten „vorzeitig beenden“ kann), rufen Sie auf dieser Seite „ setFinalPage(true)“ auf. Bei Assistenten, die ein vorzeitiges Beenden unterstützen, sollten Sie möglicherweise auch die Optionen „ HaveNextButtonOnLastPage “ und „ HaveFinishButtonOnEarlyPages “ für den Assistenten festlegen.

In vielen Assistenten kann der Inhalt einer Seite die Standardwerte der Felder einer nachfolgenden Seite beeinflussen. Um die Kommunikation zwischen den Seiten zu vereinfachen, unterstützt „ QWizard “ eine „ "field" mechanism “, mit der Sie ein Feld (z. B. ein „ QLineEdit “) auf einer Seite registrieren und von jeder Seite aus auf dessen Wert zugreifen können. Felder gelten global für den gesamten Assistenten und erleichtern es jeder einzelnen Seite, auf Informationen zuzugreifen, die auf einer anderen Seite gespeichert sind, ohne dass die gesamte Logik in „ QWizard “ untergebracht werden muss oder die Seiten explizit voneinander wissen müssen. Felder werden mit „ registerField()“ registriert und können jederzeit mit „ field()“ und „ setField()“ abgerufen werden.

Siehe auch QWizard, Triviales Assistentenbeispiel und Lizenz-Assistentenbeispiel.

Dokumentation zu Eigenschaften

subTitle : QString

Diese Eigenschaft enthält den Untertitel der Seite

Der Untertitel wird von der Eigenschaft „ QWizard “ zwischen dem Titel und dem eigentlichen Seiteninhalt angezeigt. Untertitel sind optional. Bei den Einstellungen „ ClassicStyle “ und „ ModernStyle “ ist die Verwendung von Untertiteln erforderlich, damit die Kopfzeile angezeigt wird. Bei der Einstellung „ MacStyle “ wird der Untertitel als Textbeschriftung direkt über dem eigentlichen Seiteninhalt angezeigt.

Der Untertitel kann je nach Wert der Eigenschaft „ QWizard::subTitleFormat “ aus einfachem Text oder HTML bestehen.

Standardmäßig enthält diese Eigenschaft eine leere Zeichenkette.

Zugriffsfunktionen:

QString subTitle() const
void setSubTitle(const QString &subTitle)

Siehe auch „ title “, „ QWizard::IgnoreSubTitles “ und „ Elements of a Wizard Page “.

title : QString

Diese Eigenschaft enthält den Titel der Seite

Der Titel wird von der „ QWizard “ oberhalb der eigentlichen Seite angezeigt. Alle Seiten sollten einen Titel haben.

Der Titel kann je nach Wert der Eigenschaft „ QWizard::titleFormat “ aus einfachem Text oder HTML bestehen.

Standardmäßig enthält diese Eigenschaft eine leere Zeichenkette.

Zugriffsfunktionen:

QString title() const
void setTitle(const QString &title)

Siehe auch „ subTitle “ und „ Elements of a Wizard Page “.

Dokumentation zu Mitgliedsfunktionen

[explicit] QWizardPage::QWizardPage(QWidget *parent = nullptr)

Erstellt eine Assistentenseite mit dem angegebenen parent.

Wenn die Seite mit ` QWizard::addPage()` oder ` QWizard::setPage()` in einen Assistenten eingefügt wird, wird der Assistent automatisch als übergeordnete Instanz festgelegt.

Siehe auch ` wizard()`.

[virtual noexcept] QWizardPage::~QWizardPage()

Destruktor.

QString QWizardPage::buttonText(QWizard::WizardButton which) const

Gibt den Text der Schaltfläche „ which “ auf dieser Seite zurück.

Wenn ein Text mit „ setButtonText()“ festgelegt wurde, wird dieser Text zurückgegeben. Andernfalls, wenn ein Text mit „ QWizard::setButtonText()“ festgelegt wurde, wird dieser Text zurückgegeben.

Standardmäßig hängt der Text auf den Schaltflächen von der Einstellung „ QWizard::wizardStyle “ ab. Unter macOS heißt die Schaltfläche „ Next “ beispielsweise „ Continue “.

Siehe auch „ setButtonText()“, „ QWizard::buttonText()“ und „ QWizard::setButtonText()“.

[virtual] void QWizardPage::cleanupPage()

Diese virtuelle Funktion wird von ` QWizard::cleanupPage()` aufgerufen, wenn der Benutzer die Seite durch Klicken auf ` Back ` verlässt (es sei denn, die Option ` QWizard::IndependentPages ` ist gesetzt).

Die Standardimplementierung setzt die Felder der Seite auf ihre ursprünglichen Werte zurück (die Werte, die sie vor dem Aufruf von ` initializePage()` hatten).

Siehe auch QWizard::cleanupPage(), initializePage() und QWizard::IndependentPages.

[signal] void QWizardPage::completeChanged()

Dieses Signal wird immer dann ausgelöst, wenn sich der „complete“-Status der Seite (d. h. der Wert von ` isComplete()`) ändert.

Wenn Sie ` isComplete()` neu implementieren, stellen Sie sicher, dass Sie `completeChanged()` immer dann auslösen, wenn sich der Wert von ` isComplete()` ändert, um zu gewährleisten, dass ` QWizard ` den aktivierten oder deaktivierten Status seiner Schaltflächen aktualisiert.

Siehe auch „ isComplete()“.

[protected] QVariant QWizardPage::field(const QString &name) const

Gibt den Wert des Feldes „ name “ zurück.

Diese Funktion kann verwendet werden, um auf Felder auf jeder Seite des Assistenten zuzugreifen. Sie entspricht dem Aufruf von ` wizard()`->field(name).

Beispiel:

        const QString emailAddress = field("details.email").toString();
        licenseText = tr("<u>First-Time License Agreement:</u> "
                         "You can use this software subject to the license "
                         "you will receive by email sent to %1.").arg(emailAddress);

Siehe auch „ QWizard::field()“, „ setField()“ und „ registerField()“.

[virtual] void QWizardPage::initializePage()

Diese virtuelle Funktion wird von ` QWizard::initializePage()` aufgerufen, um die Seite vorzubereiten, unmittelbar bevor sie entweder infolge des Aufrufs von ` QWizard::restart()` oder infolge eines Klicks des Benutzers auf ` Next` angezeigt wird. (Ist jedoch die Option ` QWizard::IndependentPages ` gesetzt, wird diese Funktion nur beim ersten Anzeigen der Seite aufgerufen.)

Durch die Neuimplementierung dieser Funktion können Sie sicherstellen, dass die Felder der Seite auf der Grundlage der Felder aus vorherigen Seiten korrekt initialisiert werden. Beispiel:

void ConclusionPage::initializePage()
{
    QString licenseText;

    if (wizard()->hasVisitedPage(LicenseWizard::Page_Evaluate)) {
        licenseText = tr("<u>Evaluation License Agreement:</u> "
                         "You can use this software for 30 days and make one "
                         "backup, but you are not allowed to distribute it.");
    } else if (wizard()->hasVisitedPage(LicenseWizard::Page_Details)) {
        const QString emailAddress = field("details.email").toString();
        licenseText = tr("<u>First-Time License Agreement:</u> "
                         "You can use this software subject to the license "
                         "you will receive by email sent to %1.").arg(emailAddress);
    } else {
        licenseText = tr("<u>Upgrade License Agreement:</u> "
                         "This software is licensed under the terms of your "
                         "current license.");
    }
    bottomLabel->setText(licenseText);
}

Die Standardimplementierung führt keine Aktion aus.

Siehe auch „ QWizard::initializePage()“, „ cleanupPage()“ und „ QWizard::IndependentPages “.

bool QWizardPage::isCommitPage() const

Gibt „ true “ zurück, wenn es sich bei dieser Seite um eine Commit-Seite handelt; andernfalls wird „ false “ zurückgegeben.

Siehe auch setCommitPage().

[virtual] bool QWizardPage::isComplete() const

Diese virtuelle Funktion wird von „ QWizard “ aufgerufen, um zu bestimmen, ob die Schaltfläche „ Next “ oder „ Finish “ aktiviert oder deaktiviert werden soll.

Die Standardimplementierung gibt „ true “ zurück, wenn alle Felder unter „ mandatory fields “ ausgefüllt sind; andernfalls gibt sie „ false “ zurück.

Wenn Sie diese Funktion neu implementieren, stellen Sie sicher, dass Sie in Ihrer Implementierung completeChanged() auslösen, sobald sich der Wert von isComplete() ändert. Dadurch wird sichergestellt, dass QWizard den Aktivierungs- oder Deaktivierungsstatus seiner Schaltflächen aktualisiert. Ein Beispiel für die Neuimplementierung finden Sie hier.

Siehe auch „ completeChanged()“ und „ isFinalPage()“.

bool QWizardPage::isFinalPage() const

Diese Funktion wird von QWizard aufgerufen, um festzustellen, ob die Schaltfläche „ Finish “ für diese Seite angezeigt werden soll oder nicht.

Standardmäßig gibt sie „ true “ zurück, wenn es keine nächste Seite gibt (d. h., „ nextId()“ gibt -1 zurück); andernfalls gibt sie „ false “ zurück.

Durch den expliziten Aufruf von ` setFinalPage(true)` können Sie dem Benutzer die Möglichkeit geben, den Vorgang „vorzeitig zu beenden“.

Siehe auch isComplete() und QWizard::HaveFinishButtonOnEarlyPages.

[virtual] int QWizardPage::nextId() const

Diese virtuelle Funktion wird von ` QWizard::nextId()` aufgerufen, um zu ermitteln, welche Seite angezeigt werden soll, wenn der Benutzer auf die Schaltfläche „ Next “ klickt.

Der Rückgabewert ist die ID der nächsten Seite oder -1, wenn keine Seite folgt.

Standardmäßig gibt diese Funktion die niedrigste ID zurück, die größer ist als die ID der aktuellen Seite, oder -1, falls keine solche ID vorhanden ist.

Durch eine Neuimplementierung dieser Funktion können Sie eine dynamische Seitenreihenfolge festlegen. Beispiel:

int IntroPage::nextId() const
{
    if (evaluateRadioButton->isChecked()) {
        return LicenseWizard::Page_Evaluate;
    } else {
        return LicenseWizard::Page_Register;
    }
}

Siehe auch ` QWizard::nextId()`.

QPixmap QWizardPage::pixmap(QWizard::WizardPixmap which) const

Gibt die für die Rolle „ which “ festgelegte Pixmap zurück.

Pixmaps können auch für den gesamten Assistenten mit ` QWizard::setPixmap()` festgelegt werden; in diesem Fall gelten sie für alle Seiten, für die keine Pixmap angegeben ist.

Siehe auch „ setPixmap()“, „ QWizard::pixmap()“ und „ Elements of a Wizard Page “.

[protected] void QWizardPage::registerField(const QString &name, QWidget *widget, const char *property = nullptr, const char *changedSignal = nullptr)

Erstellt ein Feld namens „ name “, das mit der angegebenen „ property “ der angegebenen „ widget “ verknüpft ist. Von diesem Zeitpunkt an kann auf diese Eigenschaft über „ field()“ und „ setField()“ zugegriffen werden.

Felder sind für den gesamten Assistenten global gültig und erleichtern es jeder einzelnen Seite, auf Informationen zuzugreifen, die von einer anderen Seite gespeichert wurden, ohne dass die gesamte Logik in QWizard untergebracht werden muss oder die Seiten explizit voneinander wissen müssen.

Endet „ name “ mit einem Sternchen (*), handelt es sich um ein Pflichtfeld. Wenn eine Seite Pflichtfelder enthält, sind die Schaltflächen „ Next “ und/oder „ Finish “ erst dann aktiviert, wenn alle Pflichtfelder ausgefüllt sind. Dazu muss ein „ changedSignal “ angegeben werden, um „ QWizard “ anzuweisen, den vom Pflichtfeld gespeicherten Wert erneut zu überprüfen.

QWizard kennt die gängigsten Qt Widgets. Für diese (oder deren Unterklassen) müssen Sie weder einen „ property “ noch einen „ changedSignal “ angeben. Die folgende Tabelle listet diese Widgets auf:

Mit ` QWizard::setDefaultProperty()` können Sie Einträge zu dieser Tabelle hinzufügen oder vorhandene Einträge überschreiben.

Um ein Feld als „ausgefüllt“ zu betrachten, prüft ` QWizard ` lediglich, ob der aktuelle Wert nicht mit dem ursprünglichen Wert übereinstimmt (dem Wert, den das Feld vor dem Aufruf von ` initializePage()` hatte). Bei ` QLineEdit` wird zusätzlich geprüft, ob ` hasAcceptableInput()` `true` zurückgibt, um etwaige Validatoren oder Masken zu berücksichtigen.

QWizardDer Mechanismus für Pflichtfelder wird aus Gründen der Benutzerfreundlichkeit bereitgestellt. Er kann durch eine Neuimplementierung von ` QWizardPage::isComplete()` umgangen werden.

Siehe auch ` field()`, ` setField()` und ` QWizard::setDefaultProperty()`.

void QWizardPage::setButtonText(QWizard::WizardButton which, const QString &text)

Legt fest, dass der Text auf der Schaltfläche „ which “ auf dieser Seite „ text “ lautet.

Standardmäßig hängt der Text auf den Schaltflächen von „ QWizard::wizardStyle “ ab, kann jedoch für den gesamten Assistenten mithilfe von „ QWizard::setButtonText()“ neu definiert werden.

Siehe auch „ buttonText()“, „ QWizard::setButtonText()“ und „ QWizard::buttonText()“.

void QWizardPage::setCommitPage(bool commitPage)

Legt diese Seite als Commit-Seite fest, wenn „ commitPage “ auf „true“ gesetzt ist; andernfalls wird sie als normale Seite festgelegt.

Eine Bestätigungsseite ist eine Seite, die eine Aktion darstellt, die nicht durch Klicken auf „ Back “ oder „ Cancel “ rückgängig gemacht werden kann.

Auf einer Bestätigungsseite ersetzt die Schaltfläche „ Commit “ die Schaltfläche „ Next “. Ein Klick auf diese Schaltfläche ruft einfach „ QWizard::next()“ auf, genau wie ein Klick auf „ Next “.

Auf einer Seite, die direkt von einer Commit-Seite aus aufgerufen wird, ist die Schaltfläche „ Back “ deaktiviert.

Siehe auch „ isCommitPage“ ().

[protected] void QWizardPage::setField(const QString &name, const QVariant &value)

Setzt den Wert des Feldes „ name “ auf „ value “.

Diese Funktion kann verwendet werden, um Felder auf jeder Seite des Assistenten zu setzen. Sie entspricht dem Aufruf von ` wizard()->setField(name, value).

Siehe auch „ QWizard::setField()“, „ field()“ und „ registerField()“.

void QWizardPage::setFinalPage(bool finalPage)

Legt diese Seite explizit als letzte Seite fest, wenn „ finalPage “ auf „true“ gesetzt ist.

Nach dem Aufruf von `setFinalPage(true)` gibt ` isFinalPage()` den Wert ` true ` zurück, und die Schaltfläche „ Finish “ ist sichtbar (und aktiviert, wenn ` isComplete()` den Wert `true` zurückgibt).

Nach dem Aufruf von `setFinalPage(false)` gibt ` isFinalPage()` ` true ` zurück, wenn ` nextId()` den Wert -1 zurückgibt; andernfalls gibt es ` false` zurück.

Siehe auch „ isFinalPage()“, „ isComplete()“ und „ QWizard::HaveFinishButtonOnEarlyPages “.

void QWizardPage::setPixmap(QWizard::WizardPixmap which, const QPixmap &pixmap)

Legt die Pixmap für die Rolle „ which “ auf „ pixmap “ fest.

Die Pixmaps werden von QWizard bei der Anzeige einer Seite verwendet. Welche Pixmaps tatsächlich verwendet werden, hängt von wizard style ab.

Pixmaps können auch für den gesamten Assistenten mit ` QWizard::setPixmap()` festgelegt werden; in diesem Fall gelten sie für alle Seiten, für die keine Pixmap angegeben ist.

Siehe auch pixmap(), QWizard::setPixmap() und Elements of a Wizard Page.

[virtual] bool QWizardPage::validatePage()

Diese virtuelle Funktion wird von ` QWizard::validateCurrentPage()` aufgerufen, wenn der Benutzer auf „ Next “ oder „ Finish “ klickt, um eine abschließende Validierung durchzuführen. Wenn sie ` true` zurückgibt, wird die nächste Seite angezeigt (oder der Assistent wird beendet); andernfalls bleibt die aktuelle Seite angezeigt.

Die Standardimplementierung gibt „ true “ zurück.

Wenn möglich, ist es stilistisch in der Regel besser, die Schaltfläche „ Next “ oder „ Finish “ zu deaktivieren (durch Angabe von ` mandatory fields ` oder durch Neaimplementierung von ` isComplete()`), als `validatePage()` neu zu implementieren.

Siehe auch „ QWizard::validateCurrentPage “ () und „ isComplete “ ().

[protected] QWizard *QWizardPage::wizard() const

Gibt den zu dieser Seite gehörenden Assistenten zurück oder „ nullptr “, falls diese Seite noch nicht in eine „ QWizard “ eingefügt wurde.

Siehe auch QWizard::addPage() und QWizard::setPage().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.