2013-03-15 22 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