QWizardPage Class

QWizardPageクラスは、ウィザード・ページの基本クラスです。詳細...

ヘッダ #include <QWizardPage>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承: QWidget

プロパティ

パブリック機能

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

シグナル

保護された関数

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

詳細説明

QWizard ウィザードを表します。各ページはQWizardPageです。あなた自身のウィザードを作成するとき、QWizardPageを直接使用することができます。

ページには以下の属性があり、QWizard によってレンダリングされます:titlesubTitleset of pixmaps 。詳細についてはElements of a Wizard Page を参照してください。ページがウィザードに追加されると(QWizard::addPage() またはQWizard::setPage() を使用)、wizard() は関連するQWizard オブジェクトへのポインタを返します。

Pageは、カスタムの動作を提供するために再実装できる5つの仮想関数を提供します:

  • initializePage() は、ユーザーがウィザードのNext ボタンをクリックしたときに、ページの内容を初期化するために呼び出されます。ユーザーが以前のページで入力した内容からページのデフォルトを導き出したい場合は、この関数を再実装します。
  • cleanupPage() は、ユーザがウィザードのBack ボタンをクリックしたときに、ページの内容をリセットするために呼び出されます。
  • validatePage() は、ユーザーがNext またはFinish をクリックしたときにページを検証します。 ユーザーが不完全または無効な情報を入力した場合にエラー・メッセージを表示するためによく使用されます。
  • nextId() は、次のページのIDを返します。これは、creating non-linear wizards 、ユーザーが提供した情報に基づいて異なるトラバーサル・パスを許可する場合に便利です。
  • isComplete() は、Next および/またはFinish ボタンを有効にするか無効にするかを決定するために呼び出される。isComplete()を再実装する場合は、完全な状態が変更されるたびにcompleteChanged()が発行されることも確認してください。

通常、ウィザードのNext ボタンとFinish ボタンは互いに排他的です。isFinalPage() がtrue を返すと、Finish が使用可能になり、そうでない場合はNext が使用可能になる。デフォルトでは、nextId() が -1 を返すときのみ、isFinalPage() が真になります。あるページでNextFinal を同時に表示したい場合(ユーザーに 「早期終了」を実行させたい場合)、そのページでsetFinalPage (true)を呼び出します。早期終了をサポートするウィザードでは、HaveNextButtonOnLastPageHaveFinishButtonOnEarlyPages オプションも設定するとよいでしょう。

多くのウィザードでは、ページの内容が後のページのフィールドのデフォルト値に影響することがあります。ページ間の通信を簡単にするために、QWizard は、"field" mechanism をサポートしています。これは、あるページでフィールド(例えば、QLineEdit )を登録し、どのページからでもその値にアクセスできるようにするものです。フィールドはウィザード全体に対してグローバルであり、QWizard にすべてのロジックを入れたり、ページが互いについて明示的に知ることなく、任意の1つのページが他のページによって保存された情報にアクセスすることを容易にします。フィールドはregisterField() を使用して登録され、field() とsetField() を使用していつでもアクセスできます。

QWizardTrivial Wizard ExampleLicense Wizard Exampleも参照してください

プロパティ・ドキュメンテーション

subTitle : QString

このプロパティは、ページのサブタイトルを保持します。

サブタイトルはQWizard 、タイトルと実際のページの間に表示されます。サブタイトルはオプションです。ClassicStyleModernStyle では、ヘッダーを表示するためにサブタイトルを使用する必要があります。MacStyle では、サブタイトルは実際のページのすぐ上にテキストラベルとして表示される。

サブタイトルは、QWizard::subTitleFormat プロパティの値によって、プレーン・テキストまたはHTMLになります。

デフォルトでは、このプロパティは空の文字列を含んでいます。

アクセス関数:

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

titleQWizard::IgnoreSubTitlesElements of a Wizard Pageも参照

title : QString

このプロパティはページのタイトルを保持します。

タイトルは実際のページの上にQWizard で表示されます。すべてのページにはタイトルが必要です。

タイトルは、QWizard::titleFormat プロパティの値によって、プレーン・テキストまたはHTMLになります。

デフォルトでは、このプロパティには空の文字列が格納されます。

アクセス関数:

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

subTitle およびElements of a Wizard Pageも参照

メンバ関数ドキュメント

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

与えられたparent でウィザード・ページを構築する。

このページがQWizard::addPage() またはQWizard::setPage() を使用してウィザードに挿入されると、親は自動的にウィザードに設定されます。

wizard()も参照してください

[virtual noexcept] QWizardPage::~QWizardPage()

破壊者。

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

このページのボタンwhich のテキストを返します。

setButtonText() を使用してテキストが設定されている場合は、このテキストが返されます。そうでない場合、QWizard::setButtonText() を使用してテキストが設定されていれば、このテキストが返されます。

デフォルトでは、ボタンのテキストはQWizard::wizardStyle に依存します。たとえば macOS では、Next ボタンはContinue と呼ばれます。

setButtonText()、QWizard::buttonText()、QWizard::setButtonText()も参照

[virtual] void QWizardPage::cleanupPage()

この仮想関数は、(QWizard::IndependentPages オプションが設定されていない限り)ユーザがBack をクリックしてページを離れると、QWizard::cleanupPage() によって呼び出されます。

デフォルトの実装では、ページのフィールドは元の値(initializePage ()が呼び出される前の値)にリセットされます。

QWizard::cleanupPage()、initializePage()、QWizard::IndependentPagesも参照

[signal] void QWizardPage::completeChanged()

このシグナルは、ページの完全な状態(つまり、isComplete ()の値)が変更されるたびに発行される。

isComplete() を再実装する場合は、isComplete() の値が変更されるたびに completeChanged() を発行して、QWizard がボタンの有効/無効の状態を更新するようにしてください。

isComplete()も参照してください

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

name というフィールドの値を返します。

この関数はウィザードのどのページのフィールドにもアクセスできます。これはwizard()-> を呼び出すのと同じです。field(name).

例:

        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);

QWizard::field()、setField()、registerField()も参照して ください。

[virtual] void QWizardPage::initializePage()

この仮想関数は、QWizard::restart() が呼び出された結果、またはユーザがNext をクリックした結果、ページが表示される直前に、QWizard::initializePage() によって呼び出され、ページを準備します (ただし、QWizard::IndependentPages オプションが設定されている場合、この関数はページが最初に表示されるときにのみ呼び出されます)。

この関数を再実装することで、前のページのフィールドに基づいて、ページのフィールドが適切に初期化されるようにすることができます。例えば

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);
}

デフォルトの実装では何もしません。

QWizard::initializePage()、cleanupPage()、QWizard::IndependentPagesも参照してください

bool QWizardPage::isCommitPage() const

このページがコミットページであればtrue を返し、そうでなければfalse を返す。

setCommitPage()も参照してください

[virtual] bool QWizardPage::isComplete() const

この仮想関数はQWizard によって呼び出され、Next またはFinish ボタンを有効にするか無効にするかを決定する。

デフォルトの実装では、mandatory fields がすべて埋まっていればtrue を返し、埋まっていなければfalse を返します。

この関数を再実装する場合は、isComplete() の値が変更されるたびに、残りの実装からcompleteChanged() を発行するようにしてください。これにより、QWizard 、ボタンの有効・無効の状態が更新されます。再実装のサンプルはこちら

completeChanged() およびisFinalPage()も参照して ください。

bool QWizardPage::isFinalPage() const

この関数はQWizard によって呼び出され、このページに対してFinish ボタンを表示するかどうかを決定する。

デフォルトでは、次のページがない場合はtrue を返し(つまりnextId() は -1 を返す)、そうでない場合はfalse を返す。

明示的にsetFinalPage(true)を呼び出すことで、ユーザーに「早期終了」を実行させることができる。

isComplete() およびQWizard::HaveFinishButtonOnEarlyPagesも参照のこと

[virtual] int QWizardPage::nextId() const

この仮想関数は、QWizard::nextId()によって呼び出され、ユーザーがNext ボタンをクリックしたときにどのページを表示するかを調べる。

戻り値は次のページのIDであり、次のページがない場合は-1である。

デフォルトでは、この関数は現在のページのIDより大きい最も小さいIDを返し、そのようなIDがない場合は-1を返す。

この関数を再実装することで、ページの順序を動的に指定することができます。例えば

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 に対して設定された pixmap を返します。

pixmapは、QWizard::setPixmap()を使用してウィザード全体に設定することもできます。この場合、pixmapを指定していないすべてのページに適用されます。

setPixmap()、QWizard::pixmap()、Elements of a Wizard Pageも参照してください

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

指定されたwidget の指定されたproperty に関連付けられたname というフィールドを作成する。それ以降、そのプロパティはfield() とsetField() を使ってアクセスできるようになります。

フィールドはウィザード全体に対するグローバルなもので、QWizard にすべてのロジックを入れたり、ページが互いについて明示的に知ることなく、任意の1つのページが別のページによって格納された情報に簡単にアクセスできるようにします。

name の末尾がアスタリスク (*) である場合、そのフィールドは必須フィールドです。ページに必須フィールドがある場合、Next および/またはFinish ボタンは、すべての必須フィールドが満たされたときのみ有効になります。このため、changedSignal を指定して、QWizard に必須フィールドに格納されている値を再チェックするように指示する必要があります。

QWizard は、最も一般的な Qt ウィジェットを知っています。これら(またはそのサブクラス)では、 や を指定する必要はありません。以下の表は、これらのウィジェットの一覧です:property changedSignal

QWizard::setDefaultProperty() を使用すると、このテーブルにエントリを追加したり、既存のエントリを上書きしたりすることができる。

フィールドを "埋めた "とみなすには、QWizard で、現在の値が元の値 (initializePage() をコールする前の値) と等しくないことをチェックする。QLineEdit については、hasAcceptableInput() が真を返すかどうかもチェックする。

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 が true の場合、このページをコミットページに設定します。そうでない場合、通常のページに設定します。

コミットページとは、BackCancel をクリックしても取り消すことができないアクションを表すページのことです。

コミットページのNext ボタンの代わりにCommit ボタンがあります。このボタンをクリックすると、Next をクリックするのと同じように、QWizard::next() が呼び出されます。

コミット・ページから直接入力されたページは、Back ボタンが無効になります。

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 が true の場合、このページを明示的に最終ページに設定する。

setFinalPage(true)を呼び出すと、isFinalPage() がtrue を返し、Finish ボタンが表示される (isComplete() が true を返すと有効になる)。

setFinalPage(false)を呼び出した後、nextId() が -1 を返す場合、isFinalPage() はtrue を返し、そうでない場合はfalse を返す。

isFinalPage()、isComplete()、QWizard::HaveFinishButtonOnEarlyPagesも参照

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

ロールwhich の pixmap をpixmap に設定します。

pixmapは、ページを表示するときにQWizard 。実際に使用される pixmap はwizard style に依存します。

pixmapはQWizard::setPixmap()を使用してウィザード全体に設定することもでき、その場合はpixmapを指定しないすべてのページに適用されます。

pixmap()、QWizard::setPixmap()、Elements of a Wizard Pageも参照のこと

[virtual] bool QWizardPage::validatePage()

この仮想関数は、ユーザーがNext またはFinish をクリックして最後の検証を行うときに、QWizard::validateCurrentPage ()によって呼び出される。この関数がtrue を返すと、次のページが表示されます(またはウィザードが終了します)。

デフォルトの実装はtrue を返します。

可能であれば、validatePage()を再実装するよりも、Next またはFinish ボタンを無効にする(mandatory fields を指定するか、isComplete()を再実装する)方が、通常は良いスタイルです。

QWizard::validateCurrentPage() およびisComplete()も参照

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

このページに関連付けられているウィザード、またはこのページがまだQWizard に挿入されていない場合はnullptr を返します。

QWizard::addPage() およびQWizard::setPage()も参照してください

© 2025 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.