我的项目需要 GUI,该项目具有用 C++ (GNU) 编写的代码并涉及 hash_map 数据结构

Posted

技术标签:

【中文标题】我的项目需要 GUI,该项目具有用 C++ (GNU) 编写的代码并涉及 hash_map 数据结构【英文标题】:Need GUI for my Project which has code written in C++ (GNU) and involves hash_map data structures 【发布时间】:2011-05-25 19:28:47 【问题描述】:

我目前在一个项目中工作,我在数据结构(hash_map/unordered_map)中执行了一些操作并显示执行这些操作所花费的时间,最后我显示了执行不同操作所花费的所有时间的摘要操作。我已经在 linux 中用 GNU C++ 编写了我的代码,并且我能够使用菜单驱动程序在终端(vi 编辑器)中显示上述要求。

当我的经理告诉我在程序中使用 GUI 而不是菜单时,我的问题就开始了。如何将 GUI 与我在 GNU C++ 中的现有代码集成。在谷歌搜索时,我看到他们将 QT 和 GTK+ 作为在 C++ 中创建 GUI 的选项,但我的问题是我的代码已经用 C++(GNU)编写,并且我包含了一些特定的头文件(#include "hash_map" / #include "unordered_map" ) 在我的程序中。

那么我的方法应该是什么。请帮助,因为我无法在我的项目中继续前进..

【问题讨论】:

您尝试过其中任何一个吗?使用 Qt 并不会阻止您使用 std:: 容器。 @Mat :但我有一个非标准容器,它是 SGI 提供给 GNU C++ 的 hash_map .. 所以? Qt 没有任何同名的东西,没有理由发生冲突。 @Mat:在浏览 QT 中的一些教程时,我发现 QT 有自己的以 q 开头的头文件。所以我相信我在使用 QT 时可能会遇到问题,因为我的程序已经写的..会不会有问题?? 试试吧。 Qt 将“Q”放在几乎任何东西的前面这一事实对您来说。除非您定义了与 Qt 的名称相同的类或头文件,否则您不会发生名称冲突,即使这样您也可以使用名称空间来解决这个问题。没有人可以在不查看代码的情况下判断您是否会遇到问题,并且 在您实际尝试之前无法判断。 GTK+ 也是如此。 【参考方案1】:

Qt 是使用 C++ 语言轻松创建 GUI 的绝佳选择

你的一般流程是

1.将您的数据结构操作构建到共享或静态库中。

您可以使用 QMake 来执行此操作(安装 QT Creator,QT 的 IDE 时应该包含它)或修改现有的构建方式 根据您构建代码的方式,这可能是一项艰巨的任务,也可能是容易的任务。希望您的主要工作将大部分工作委托给其他班级。 (如果不是,您将熟悉一种称为“重构”的活动)

2。链接到库并从现有的菜单驱动界面调用它

如果一切正常,恭喜您继续创建 UI 如果事情的表现不同,请参阅之前关于重构的评论

3。使用 QT Creator 创建 UI。链接到库并从 UI 调用

添加功能直到满足要求。 请帮您未来的同行一个忙,并研究一种称为模型-视图-控制器设计模式的东西,以及它如何应用于 UI。一个小型组织将使您的工作在未来不太可能被丢弃。

参考文献

http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html http://doc.qt.nokia.com/4.7/qmake-project-files.html http://doc.qt.nokia.com/4.7/tutorials.html

【讨论】:

以上是关于我的项目需要 GUI,该项目具有用 C++ (GNU) 编写的代码并涉及 hash_map 数据结构的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中向 MFC 项目添加另一个 gui

我发起了一个 .Net 开源 跨平台 GUI (界面开发框架)项目 HtmlSharpCore

项目构建工具CMake、GYP、GN

如何在带有 VB.net GUI 的 C++ OpenCV 项目中使用 C# 库?

有人用过 smartwin(一个 Windows C++ GUI OS 库)吗?

带有 C# 后端的电子 GUI