QAbstractFormBuilder Class
QAbstractFormBuilder クラスは、実行時にユーザーインターフェースを作成するクラス向けのデフォルトの実装を提供します。詳細...
| ヘッダー: | #include <QAbstractFormBuilder> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Designer) target_link_libraries(mytarget PRIVATE Qt6::Designer) |
| qmake: | QT += designer |
| 継承元: |
パブリック関数
| QAbstractFormBuilder() | |
| QAbstractFormBuilder(const QAbstractFormBuilder &) | |
| QAbstractFormBuilder(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 & | operator=(QAbstractFormBuilder &&) |
| QAbstractFormBuilder & | operator=(const QAbstractFormBuilder &) |
詳細な説明
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() は、ウィジェットの詳細を UI 形式で任意の QIODevice に保存する処理を行います。
- workingDirectory() およびsetWorkingDirectory() は、フォームが格納されるディレクトリを制御します。フォームビルダーは、このディレクトリを基準とした相対パス上で他のリソースを検索します。
QFormBuilder クラスは通常、Qt Widgets Designer を組み込んだカスタムコンポーネントやアプリケーションで使用されます。実行時にユーザーインターフェースを動的に生成する必要があるスタンドアロンアプリケーションでは、QUiLoader を使用します。これは Qt UI Tools モジュールに含まれるxml-ph-0002@deepl.internalを使用します。
関連項目 Qt UI Tools。
メンバ関数のドキュメント
QAbstractFormBuilder::QAbstractFormBuilder()
新しいフォームビルダーを作成します。
[delete] QAbstractFormBuilder::QAbstractFormBuilder(const QAbstractFormBuilder &)
QAbstractFormBuilder のインスタンスをコピーして生成します。この関数は削除されています。
[delete] QAbstractFormBuilder::QAbstractFormBuilder(QAbstractFormBuilder &&)
QAbstractFormBuilder のインスタンスをMoveコンストラクタで生成します。この関数は削除されています。
[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ファイルをロードする前に、不要なプロパティを削除する必要があります。あるいは、このメソッドを呼び出す時点で保存したいプロパティがすでに分かっている場合は、computeProperties() をオーバーロードし、必要なプロパティのみをフィルタリングしたリストを返すこともできます。そうしないと、これらのプロパティの一部が相互に依存している可能性があるため、予期しない動作が発生する可能性があります。
load()も参照してください 。
void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)
フォームビルダーの現在の作業ディレクトリを、指定されたdirectory に設定します。
workingDirectory()も参照してください 。
QDir QAbstractFormBuilder::workingDirectory() const
フォームビルダーの現在の作業ディレクトリを返します。
setWorkingDirectory()も参照してください 。
[delete] QAbstractFormBuilder &QAbstractFormBuilder::operator=(QAbstractFormBuilder &&)
other をこのQAbstractFormBuilder インスタンスにムーブ代入します。この関数は削除されます。
[delete] QAbstractFormBuilder &QAbstractFormBuilder::operator=(const QAbstractFormBuilder &)
other をこのQAbstractFormBuilder インスタンスにコピー代入します。この関数は削除されます。
© 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.