2011-01-07 185 views
11

我必須使用Windows 7/mingw下的g ++將項目從Windows XP下的Borland C++ Builder 5.0移植到Qt 4.7.1。庫和命令行工具已經完成,現在我必須解決使用Borland VCL的GUI應用程序。
任何人都可以推薦任何工具或庫來使這個任務更容易嗎?
有沒有人有這方面的經驗?將Borland C++ Builder移植到Qt

編輯補充:好了,我把不畏艱險,並實現了從無到有的GUI。我必須說,評論員是正確的:我看不到任何使用現有Borland GUI來緩解過程的方式。

+0

C++ Builder GUI有多少種形式?只有幾十幾百?正如你可能知道的,如果你從頭開始創建Qt GUI,你會得到最好的結果。 – 2011-01-07 16:50:09

+0

幾十個表格。其中一些非常複雜,有樹形視圖,標籤等。所以我不想從頭開始創建它們,如果我可以避免它。 – TonyK 2011-01-07 16:53:11

回答

8

VCL和Qt之間有幾個很大的差異,會使自動轉換過程變得非常困難。

  • Qt使用信號和插槽以及VCL使用事件的繼承。
  • VCL組件使用絕對座標和Qt使用佈局。當然,你也可以在Qt中使用絕對座標,但是GUI會非常糟糕。
  • VCL的TListBox和TTreeView類與Qt的View和Model類非常不同(儘管您可以使用QListWidget和QTreeWidget代替)。

我想用Qt設計全新的GUI要比創建一個平庸的VCL-to-Qt轉換器要快得多。代碼將更容易維護。我建議你採用一種中等複雜度的VCL格式,並用Qt重新創建。之後,你可以估計整個娛樂工作。此外,您還可以更好地瞭解轉換工具的可行性,您可能需要自己製作轉換工具。

1

有人寫DFM的轉換爲QT UI文件的工具:

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

它有一些小錯誤,但它可以節省幾個小時的時間移植形式設計。在某些情況下,重新設計特定表單是可取的 - 但在許多情況下,爲您定位標籤和大致等效的控件可節省大量點擊操作。

1

我同意目前的一致意見,認爲自動從VCL轉換到QT並不是一個好主意,因爲兩者背後的概念是非常不同的,而且你從一開始就學習「QT方式」並使用它更好。
然而,還有一個沒有人提到的重大步驟:重構!在開始之前,請確保您重構原始表單以儘可能多地刪除業務邏輯,並只保留真正的GUI代碼。這取決於你的架構當然有多好,但VCL設計師傾向於鼓勵儘可能多地使用形式(甚至可以使用非可視化組件的無形「數據形式」),所以你經常會發現很多形式上的東西不應該在那裏。