QAbstractFormBuilder Class

QAbstractFormBuilder クラスは、実行時にユーザー・インターフェースを作成するクラスのデフォルト実装を提供します。詳細...

ヘッダー #include <QAbstractFormBuilder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake: QT += designer
継承元:

QFormBuilder

パブリック関数

QAbstractFormBuilder()
virtual ~QAbstractFormBuilder()
QString errorString() const
virtual QWidget *load(QIODevice *device, QWidget *parent = nullptr)
virtual void save(QIODevice *device, QWidget *widget)
void setWorkingDirectory(const QDir &directory)
QDir workingDirectory() const

詳細説明

QAbstractFormBuilder は、ユーザーインターフェイスファイルからフォームを構築するための標準インターフェイスとデフォルトの実装を提供します。直接インスタンス化することは意図されていません。実行時に UI ファイルからユーザー・インターフェースを作成するには、QFormBuilder クラスを使用してください。例えば

        MyForm::MyForm(QWidget *parent)
            : QWidget(parent)
        {
            QFormBuilder builder;
            QFile file(":/forms/myWidget.ui");
            file.open(QFile::ReadOnly);
            QWidget *myWidget = builder.load(&file, this);
            file.close();

            auto *layout = new QVBoxLayout(this);
            layout->addWidget(myWidget);
        }

フォームビルダの動作の特定の側面をオーバーライドするには、QAbstractFormBuilder をサブクラス化し、関連する仮想関数を再実装します:

  • load() は、任意の QIODevices からの UI フォーマット・ファイルの読み込みと、それらが含む XML データからのウィジェットの構築を処理します。
  • save() は、任意のQIODevicesへのUIフォーマットのウィジェット詳細の保存を処理します。
  • workingDirectory() とsetWorkingDirectory() は、フォームが保持されるディレクトリを制御します。フォーム・ビルダーは、このディレクトリからの相対パスで他のリソースを探します。

QFormBuilder クラスは通常、Qt Widgets Designer を埋め込むカスタム コンポーネントやアプリケーションで使用されます。実行時にユーザー インターフェイスを動的に生成する必要があるスタンドアロン アプリケーションは、QUiLoader を使用します。 Qt UI Toolsモジュールを使用します。

以下も参照してください。 Qt UI Tools.

メンバ関数ドキュメント

QAbstractFormBuilder::QAbstractFormBuilder()

新しいフォームビルダを作成します。

[virtual noexcept] QAbstractFormBuilder::~QAbstractFormBuilder()

フォームビルダを破壊する。

QString QAbstractFormBuilder::errorString() const

load() で発生した最後のエラーについて、人間が読める説明を返す。

load()も参照

[virtual] QWidget *QAbstractFormBuilder::load(QIODevice *device, QWidget *parent = nullptr)

与えられたdevice からウィジェットの XML 表現を読み込み、指定されたparent で新しいウィジェットを構築する。

save() およびerrorString()も参照

[virtual] void QAbstractFormBuilder::save(QIODevice *device, QWidget *widget)

指定 さ れたwidget の XML 表現を、 標準 UI フ ァ イ ル形式で指定 さ れたdevice に保存 し ます。

注: Qt Widgets Designer でフォームを保存する場合とは異なり、すべてのプロパティ値が書き込まれます。これは、プロパティ値が変更されたかどうかの状態が Qt プロパティシステムに保存されていないためです。保存されるウィジェットは、load() を介してロードされたのではなく、動的に作成された可能性があります。また、動的に作成されたウィジェットに対してこれを行う汎用的な方法はありません。

したがって、XML ファイルを読み込む前に、結果の XML ファイルから不要なプロパティを削除する必要があります。あるいは、このメソッドを呼び出したときに保存したいプロパティが既に分かっている場合は、computeProperties() をオーバーロードして、フィルタリングされた必須プロパティのリストを返すこともできます。そうしないと、これらのプロパティの一部が互いに依存している可能性があるため、予期しない動作が発生する可能性があります。

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

void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)

フォームビルダーの現在の作業ディレクトリを、指定されたdirectory に設定する。

workingDirectory()も参照のこと

QDir QAbstractFormBuilder::workingDirectory() const

フォームビルダーの現在の作業ディレクトリを返す。

setWorkingDirectory()も参照ください

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