UI ファイル形式とは?
.ui ファイルは、Qt Creator に同梱されているビジュアル GUI エディタである Qt Designer で作成および編集される XML ベースのフォームレイアウト記述です。これは、Qt Widgets のダイアログやウィンドウを構成するウィジェットの階層、プロパティ、シグナル/スロット接続、およびリソース参照を定義しますが、設計時の成果物にすぎず、実行時にデプロイされることはありません。
ファイルは標準の XML 宣言で始まり、その後に <ui version="4.0"> ルート要素が続きます。内部では、<widget> ツリーがウィジェットの階層を反映しており、各ノードにはジオメトリ、テキスト、フォント、その他の属性のための <property> 要素が含まれています。シグナル/スロット接続は <connections> ブロックにリストされ、カスタムウィジェットの登録は <customwidgets> の下に表示され、埋め込まれたリソースのエイリアスは <resources> に配置されます。
ビルド時に、Qt の uic (User Interface Compiler) が .ui ファイルを読み取り、すべてのウィジェットをインスタンス化して構成する C++ ヘッダー(例:ui_mainwindow.h)を生成します。この生成されたヘッダーは、対応する .cpp 実装ファイルによって #include されます。XML スキーマは Qt 4 (2005年) 以降安定しており、Qt 5 および Qt 6 全体で完全にサポートされています。これら 3 つのバージョンすべてで、後方互換性のために version="4.0" 属性文字列が保持されています。
最新の .qml ベースの Qt Quick インターフェースでは、.ui ファイルは使用されません。これらは、Windows、Linux、macOS、Android、iOS、および組み込みターゲット上の従来の Qt Widgets アプリケーションの標準であり続けています。Qt Designer(スタンドアロンツールとしても利用可能)および任意のプレーンテキスト XML エディタで .ui ファイルを開くことができます。
セキュリティと安全性
リスク: LOW.ui ファイルはプレーンな XML であり、テキストエディタで開いたときに実行のリスクはありません。ビルド環境では、uic によって生成されたコードがアプリケーションにコンパイルされますが、.ui ファイル自体には実行可能コードは含まれておらず、すべてのロジックは対応する .cpp ファイルにあります。
形式の詳細
概要- FLUID (FLTK User Interface Designer) ファイル - FLTK の FLUID ツールは主に .fl ファイルを使用しますが、一部の古いプロジェクトやバリアントでは FLTK GUI 記述に .ui を使用する場合があります。
- 一般的な UI 記述 / その他のフレームワーク - 他の GUI ツールキット(wxFormBuilder、GTK 用の Glade)も .ui 拡張子を使用する場合があります。GTK 用の Glade XML ファイルも .ui (GtkBuilder 形式) です。
UI ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナ形式 | XML ドキュメント (UTF-8 プレーンテキスト) |
| ルート要素 | <ui version="4.0"> - Qt 4、5、6 全体での後方互換性のために、Qt 4 以降バージョン文字列は変更されていません |
| ウィジェット階層 | 型指定された <property> 子要素(ジオメトリ、テキスト、フォント、パレットなど)を持つネストされた <widget> 要素 |
| シグナル/スロットのエンコーディング | <connections> ブロックに送信元オブジェクト、シグナル名、受信先オブジェクト、スロット名をリスト |
| リソース参照 | <resources> ブロックにアイコンやその他のアセットの .qrc ファイルエイリアスをリスト |
| カスタムウィジェットのサポート | <customwidgets> ブロックで、非標準ウィジェットのクラス名、インクルードヘッダー、およびコンテナフラグを宣言 |
| ビルド時のコンパイル | Qt の uic (User Interface Compiler) がビルド時に .ui ファイルから C++ ヘッダー(例:ui_mainwindow.h)を生成 |
| 実行時のデプロイ | 設計時専用ファイル。デプロイされず、ビルド中に生成された C++ コードにコンパイルされます |
| MIME タイプ | application/x-designer |
| エンコーディング | UTF-8 プレーンテキスト。バイナリセクションなし |
| プラットフォームサポート | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), 組み込み Linux |
| プロジェクト統合 | FORMS 変数を介して .pro / .pri プロジェクトファイルによって参照されます。Qt 6 CMake ビルドでは qt_add_ui() を介してもサポートされます |
| リリース日 | ~1999 (Qt Designer introduced with Qt 2.x) |
| 最新バージョン | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | doc.qt.io |
UI の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。UI ファイルについて最初の質問をしてみましょう。