私が見る限り、.qmlファイルを使用してUIを定義できます。これは、ui.qmlファイルに書き込まれているものをすべてオーバーライドしているようです。では、ui.qmlファイルの使用は正確には何ですか?
QtCreatorでQt5を使用しています。
.ui.qml
ファイルは、Qt QuickDesignerを支援するために存在します。たとえば、通常のQMLファイルにはJavaScript式を含めることができますが、Qt QuickDesignerでこれらを操作するのは困難です。一方、プレーンQMLはそれほど難しくはなく、.ui
ファイルと同等のウィジェットに近いものです。これは、ユーザーインターフェイスの一連のアイテムの詳細を示すドキュメントであり、その背後にあるロジックはそれほど多くありません。
機能 数年前にブログで提案されました :
従来のウィジェットデザイナは、宣言型と命令型ロジックの違いを中心に構築されています。宣言型は設計可能であり、.uiファイルに保存されます。
Qmlでは、宣言型コードと命令型コードを簡単に組み合わせることができます。 Qmlファイルに命令型の命令(視覚的な側面に影響を与える)を追加すると、それらはもはや純粋に宣言型ではなくなり、ビジュアルエディターでの視覚的な表現が壊れます。ビジュアルエディターには、ビジュアルの説明をテキストの説明に戻す方法が必要です。命令型コードの場合、これは一般的に不可能であり、Qt QuickDesignerは試行すらしません。
QMLドキュメント ドキュメントの状態:
Qt 5.4以降、ドキュメントのファイル拡張子は「.ui.qml」にすることもできます。 QMLエンジンは、これらのファイルを標準の.qmlファイルと同様に処理し、拡張子の.ui部分を無視します。 Qt Creatorは、これらのファイルをQt QuickDesignerのUIフォームとして処理します。ファイルには、QtCreatorによって定義されたQML言語のサブセットのみを含めることができます。
Qt Creatorウィザードを使用して、ファイル名拡張子が.ui.qmlのUIフォームを作成できます。 UIフォームには、QML言語の純粋に宣言型のサブセットが含まれています。デザインモードでフォームを編集することをお勧めします。ただし、アイテムをエイリアスプロパティとしてエクスポートすることは商用のみの機能であるため、オープンソースバージョンのQt Creatorを使用している場合は、編集モードを使用してエクスポートする必要があります。 Qt Creatorは、エラーメッセージを表示することにより、サポートされているQML機能の使用を強制します。
次の機能はサポートされていません。
- JavaScriptブロック
- 関数の定義
- 関数呼び出し(qsTrを除く)
- 純粋な式以外のバインディング
- シグナルハンドラー
- ルートアイテム以外のアイテムの状態
- QQuickItemまたはItemから派生していないルートアイテム
次のタイプはサポートされていません。
- 動作
- 製本
- キャンバス
- 成分
- シェーダー効果
- タイマー
- 変換
- 遷移