2013-03-15 24 views
-1

我目前正在使用一些現有的大型C++代碼開發工具。我目前正在考慮使用模型 - 視圖 - 控制器(MVC)設計。該模型應該包含所有的C++代碼。視圖是用戶看到的,控制器基本上是模型和視圖之間的粘合劑。爲現有的大型C++代碼構建圖形用戶界面

我正在尋找的特點是:

  • 可擴展設計與MVC
  • 文本用戶接口(TUI),終端和圖形用戶界面(GUI)選擇
  • 該GUI應加載一些文本文件
  • GUI應該使用用戶的某些文本輸入來運行一些算法並生成一些輸出值
  • GUI最終應該彈出,保存,例如GNU圖。這個C++代碼在Eclipse中非常適用(庫,包含,構建選項)
  • 在新的算法將被添加到C++代碼中時,這不應該成爲一個大問題。

現在我發現3級的解決方案:

  • QT - > Qt Creator的將近要求的IDE,使得它凌亂去從Eclipse的,儘管QT的優點的使用。 QT似乎也需要一個怪異的GUI結構,所以我對如何製作控制器感到困惑。 eclipse插件目前已經死機,我無法在QT和諾基亞的FTP上找到它。
  • GTKmm - >來自C,有時有點難以理解爲什麼有些東西是必需的。我相信我可以在MVC設計中完成這項工作。
  • 使用共享庫(JNI)的Java Swing - >使用Java和C++,這有點奇怪。使用JNI可能會在現有的C++代碼上花費額外的工作。

我有一些Java Swing的經驗,幾乎沒有QT和GTKmm的經驗。

那麼,當我已經擁有一個缺乏經驗的UI開發人員的現有C++代碼時,製作GUI的最佳解決方案是什麼?

+2

「Qt幾乎要求使用IDE」 - euh,不是?如果你願意,可以使用IDE,但沒有任何東西強迫你。如果你對Eclipse的使用感到滿意的話。 (UI設計者的東西是「怪異的」,我從來沒有用過它,可以直接用純文本編輯器在Qt C++中完成。) – Mat 2013-03-15 10:26:30

+0

這就是爲什麼我說'差不多',我知道可以堅持使用Eclipse。你的意思是通過導入一些庫並使用來自Qt的come包括,然後開始在Eclipse或文本編輯器工作?感謝您的評論。 – Bear 2013-03-15 10:32:59

+0

Qt C++是C++。有一些與構建有關的事情需要特別關注,但就是這樣。您可以使用Vim&'qmake'(或Emacs或記事本)構建一個GUI。 – Mat 2013-03-15 10:47:36

回答

1

在你的3個選項中,我肯定會使用Qt。

基本上Qt的是一個功能界面,你需要開始QApplicationshow()某種小部件,然後啓動該應用程序(QApplication::exec())事件循環。

http://qt-project.org/doc/qt-4.8/qapplication.html

http://qt-project.org/doc/qt-4.8/qapplication.html#exec

Qt是非常靈活的,經過深思熟慮的,並擁有堅定的追隨者。它有令人難以置信的文件。

要與您現有的C++數據結構進行交互,只需將它們構建爲一個成員變量,作爲您在GUI中使用的主要窗口小部件之一。然後,當你想訪問和顯示信息時,這是一塊蛋糕。

http://qt-project.org/doc/qt-4.8/qwidget.html

http://qt-project.org/doc/qt-4.8/qmainwindow.html

大多數Qt中的GUI元件的僅充當視圖,並沒有任何明確的模型和控制器的設置。這留給開發者。如果你正在顯示一個數據庫,一棵樹或一個網格項目,那麼有一個model/view flow,但我認爲它不適用於你的應用程序。

瞭解和使用信號和時隙對於在Qt中製作交互式圖形用戶界面非常重要,而且非常輕鬆。

http://qt-project.org/doc/qt-4.8/signalsandslots.html

http://qt-project.org/doc/qt-4.8/qobject.html#details

上所有不同種類QWidgets的閱讀了那裏,你應該能夠找到每一個你在你的問題中列出的元素。

下面是一些你應該看看:

http://qt-project.org/doc/qt-4.8/qtextstream.html

http://qt-project.org/doc/qt-4.8/qtextedit.html

http://qt-project.org/doc/qt-4.8/qlineedit.html

http://qt-project.org/doc/qt-4.8/qlabel.html

當然期待通過附帶的Qt的教程和示例。

如何使用GNUPLOT使用Qt

http://lists.trolltech.com/qt-interest/2002-12/thread00068-0.html

此外,作爲已經使用這兩種Qt Creator的和Eclipse的開發人員,我更喜歡Qt Creator的,和移植項目在Qt Creator的工作是很直前鋒。如果你想改變Eclipse的構建鏈來使用Qt庫和QMake,那也是可能的。

http://qt-project.org/doc/qt-4.8/qmake-project-files.html

http://qt-project.org/doc/qt-4.8/qmake-project-files.html#declaring-other-libraries

http://therning.org/magnus/archives/1023

我希望這是有幫助的。祝你好運。

+0

我很欣賞你的評論。它幫助我解決了如何在QT中工作的問題。謝謝。 – Bear 2013-03-16 15:05:06

+0

很高興我能幫到你。 – phyatt 2013-03-16 15:58:11