適切に準備されたプロジェクトは、UI レイヤーからアプリケーション ロジックを分離し、UI レイヤーの変更や完全な置き換えを容易にします。変換したいプロジェクトがそのようなものであれば、ある程度実行できるはずです。
同じ命名を維持する場合、命令型 UI と生成された UI の最も大きな違いは、UI メンバーにアクセスするとき.ui
の余分な部分です。ui->
すべての作業を行うツールはありませんがQObject::dumpObjectTree()
、UI のツリーのような表現を取得するために使用できます。たとえば、次のようになります。
QTabDialog::dialog <574,451,133,123>
QBoxLayout::unnamed
QBoxLayout::unnamed
QBoxLayout::unnamed
QPushButton::ok <45,91,82,26>
QTabWidget::tab widget <6,6,119,75>
QTabBar::tab control <0,0,48,24>
QToolButton::qt_right_btn I
QToolButton::qt_left_btn I
QAccel::tab accelerators
QWidget::tab base I
QWidgetStack::tab pages <0,22,119,51>
QFrame::first <2,2,115,47>
QObject::unnamed
QWidgetStackPrivate::Invisible::unnamed <2,2,115,47>
ご覧のように、それを簡単に解析して、現在 UI にある各オブジェクトのタイプと名前を取得できます。その情報とメタ システムが提供する機能を使用して、プロパティをクエリし、XML .ui ファイルを生成できます。
もちろん、要素が動的に作成または削除される、より動的な UI を使用することもできますが、その場合、これを行うのは難しくなります。その場合、すべてを手動で行う必要があります。