QAbstractFormBuilder Class

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

Header: #include <QAbstractFormBuilder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake: QT += designer
Inherited By:

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 を組み込んだカスタム コンポーネントやアプリケーションで使用されます。実行時にユーザーインターフェースを動的に生成する必要があるスタンドアロンアプリケーションでは、Qt UI ToolsモジュールにあるQUiLoader を使用します。

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()も参照して ください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。