2011-12-31 10 views
2

私は、データベースのテーブルモデルから動的に生成されたフォーム持っているにQDialogを既存:保存* .uiファイル

enter image description here

を私が* .uiファイルにそのフォームを保存する方法はありますか? Qt Designerでそのフォームを編集できるようにします。

答えて

2

ユーザーが追加したり編集したりできるものに制限がある必要がありますか?

もしそうなら、多分あなたは、より構造的なアプローチを取り、設計および編集フォームのためのシンプルなインターフェイスを提供するために、QWizardを使用することができます。ウィザードは、( - それはQUiLoaderクラスが含まれていないので、あなたがPyQt4を使用している場合、それはある)uic moduleを使用して、アプリケーションにロードされますuiファイルを生成します。これが機能するために

もちろん、あなたはそれがまたuiファイルで動作するように動的にフォームを生成するために、あなたの現在の手順を適応する必要があります。

EDIT

QAbstractFormBuilderのロードおよびUIファイルとしてウィジェットを保存し、両方のためのAPIを提供しますように見えます。これはQtDesignerモジュールの一部で、PyQt4に含まれています。

load()save()の方法での私の簡単な実験では、非常に有用な結果は得られませんでしたが、うまくいけば他の人にはもっと運があります。

個人的に、私がこのようなアプリケーションを設計していた場合は、適切なXMLライブラリ(Qt'sまたはいくつかのPython標準ライブラリモジュールの1つ)を使用して自分でuiファイルを生成したいと考えています。フォームレイアウトの構造はかなりシンプルで規則的なので、uiファイルは複製するのが難しいはずはありません。このようにすることの大きな利点は、入力と出力を完全に制御できることです。

+0

を使用していますか? – warvariuc

+0

@warvariuc。私はいくつかのさらなる情報で私の答えを更新しました。 QAbstractFormBuilderへのリンクの – ekhumoro

+0

おかげで - 私はそれを使用することができます方法について説明します。 – warvariuc

0

QUiLoaderにおける負荷は()、ない保存()があります:

http://developer.qt.nokia.com/doc/qt-4.8/quiloader.html#load

UIファイル形式は、文書化、およびXMLです。だから、あなたはあなた自身の.UIファイル生成書くことができます:実際に

http://developer.qt.nokia.com/doc/qt-4.8/designer-ui-file-format.html

を、あなたは他の方法で回避この問題を攻撃することができます。プログラムのウィジェットAPI呼び出しを使用してダイアログを生成する代わりに、代わりに.UIファイルをXMLで生成します。その後、あなたのアプリやQtDesignerで読み込むことができます。おそらくそこ

(あなたのアプリがあるか、行うことを目的としている内容に応じて、あなたもQtDesignerプラグインとしてそれを再考に見えるかもしれません...この機能は無料で来るかもしれない。その場合には。)

+0

のリンクをお寄せいただきありがとうございます。 >それをQtDesignerプラグインとして再考する<プラグインはデザイナー自体に必要なフォームを作成できますか?はい、私は、ウィザードは、その後どのように私は、UIファイルことを生成しますUICモジュール<けれどもを使用して、アプリケーションにロードされますUIファイルを生成するPyQt4を、> – warvariuc