2011-01-07 46 views
11

Windows XPのBorland C++ Builder 5.0からWindows 7/mingwのg ++​​を使用してQt 4.7.1にプロジェクトを移植する必要があります。ライブラリとコマンドラインユーティリティが完成しましたが、今はBorland VCLを使用するGUIアプリケーションに取り組まなければなりません。
誰でもこの作業を簡単にするためにツールやライブラリをおすすめできますか?
誰もこれについて何か経験がありますか?QtにBorland C++ Builderを移植する

編集の追加:まあ、私はホーンで雄牛を取り、最初からGUIを実装しました。私は、コメンテーターが正しいと言う必要があります。既存のBorland GUIを使用してプロセスを容易にする方法はありません。

+0

C++ Builder GUIにはいくつのフォームがありますか?ほんの数十、何百もの?ご存じのように、Qt GUIを最初から作成すると、最良の結果が得られます。 –

+0

数十のフォーム。それらのいくつかはツリービュー、タブなどで非常に複雑です。それを避けることができれば、それらをすべてゼロから作成したくありません。 – TonyK

+0

誰かがこの質問をしたときに私は疑問に思っていました:) VCLからQtへの自動変換は実行可能な作業ではないようです。 –

答えて

8

VCLとQtにはいくつかの大きな違いがあり、自動変換処理が非常に難しくなります。

  • Qtは、VCLがイベントを使用する場合、信号とスロットと継承を使用します。
  • VCLコンポーネントは絶対座標を使用し、Qtはレイアウトを使用します。もちろん、あなたはQtでも絶対座標を使うことができますが、GUIはかなりひどいでしょう。
  • VCLのTListBoxクラスとTTreeViewクラスは、QtのViewクラスとModelクラス(QListWidgetとQTreeWidgetを代わりに使用することができます)とはかなり異なります。

普通のVCL-to-Qtコンバータを作成するよりも、Qtを使って全く新しいGUIを設計する方がはるかに速いと思います。そして、コードはずっと保守しやすくなります。中規模の複雑さを持つVCLフォームを1つ作成し、Qtを使用して再作成することをお勧めします。その後、レクリエーション全体の仕事を見積もることができます。また、自分で作成する必要のある変換ツールの実現可能性についてより深く理解することができます。

1

誰かがUIファイルをQTするDFMのを変換するツールを作成しました:

http://sourceforge.net/projects/dfm2qt4ui/

ITSはいくつかの小さなバグがありますが、それはフォームデザインを移植時の数時間を節約することができます。場合によっては、特定のフォームを再設計することが望ましいですが、多くの場合、ラベルとほぼ同等のコントロールを配置することで、多くのポイントアンドクリック操作が保存されます。

+0

ツールを試してみてください。結果は私を全く満足させなかった。私は、作者が言ったように、プロジェクトを移植する最良の方法は、GUIをゼロから実装することです。 – vrogach

+0

フォーム上のコントロールの数に完全に依存します。それは私に多くの仕事を保存しましたが、まだ.uiファイルは多くの再編成を必要とします。しかし、少なくともコントロールは同じ変数名を持ち、すでにフォームに追加されています。完全な書き換えは、常に新しいバグの多くを紹介します。 – Pete

1

私は、VCLからQTへの自動変換が良い考えではないという合意に同意します。なぜなら、両方の背後にある概念は非常に異なり、あなたは "QT方法"
しかし、まだ誰も言及していない重要なステップが1つあります。リファクタリング!開始する前に、元のフォームをリファクタリングしてできるだけ多くのビジネスロジックを削除し、実際にはGUIコードだけを残しておきます。それはあなたのアーキテクチャーが既にどれほど優れているかによって異なりますが、VCLデザイナーはできるだけフォームに入れるようにしています(非ビジュアルコンポーネントでは見えない "データフォーム"を持っていてもそうです)。そこにはいけないという形のものがたくさんあります。

関連する問題