什么是用C++制作简单跨平台GUI的最佳方式?

5
我希望制作一个拥有非常简单GUI(背景图、取消按钮和进度条)的桌面应用程序。
我的主要目标是Mac和Windows操作系统。
使用Visual C++ 2008是否可以实现这一点?
是否有人可以提供使用Visual C++的示例?
或者是否有更好的方法来分别创建GUI?
7个回答

23
使用Qt4. http://qt-project.org/ 这是一个自包含框架,其中包含开发人员工具、GUI生成器、字符串/IO/XML/线程类、音频/视频控件、HTML小部件等许多功能。它被构建成完全多平台,一个代码适用于所有系统。
与wxWidgets相比,它感觉更面向对象,并且有远比它更好的文档和更好的维护。
在线查看:http://qt-project.org/doc/qt-4.8/ 编辑-
原回答已经6年了。我应该指向Qt5 - http://www.qt.io/

此外,几个月前诺基亚已经将其开源,如果这对您很重要的话。 - Andy
1
Qt非常适合像你所询问的简单UI。这是正确的方法。然而,如果你的UI变得更加复杂、更加交互式,那么QT可能无法解决所有问题... - Alex
4
Qt很适合复杂的GUI界面,你为什么认为它不行呢? - PowerApp101
你是指“它感觉更面向对象”吗?还是“感觉像面向对象模式”是什么意思? - Jorge Luque
@JorgeLuque - 是的,更面向对象。 - elcuco
显示剩余2条评论

11

我会推荐 wxWidgets。它是跨平台的,可以与Visual C++一起使用。

还有Qt(请参见Colin的帖子),这是KDE(Linux桌面管理器)使用的工具。不过它的许可证更加具有限制性。


Qt-4.5是LGPL许可,这有什么限制吗? - user83255
1
@ilproxyil:我并没有说它是有限制的。然而,它比(请参见wxWidgets http://www.wxwidgets.org/about/newlicen.htm)稍微有点限制性。对于大多数人来说,我想这种差异是可以忽略的。 - Skurmedel

9

您也可以查看FLTK

FLTK(发音为“fulltick”)是一个跨平台的C ++ GUI工具包,适用于UNIX®/Linux®(X11),Microsoft® Windows®和MacOS® X。FLTK提供现代GUI功能而不会臃肿,并通过OpenGL®和其内置GLUT仿真支持3D图形。

FLTK旨在足够小和模块化以便于静态链接,但作为共享库也可以正常工作。 FLTK还包括一个名为FLUID的优秀UI构建器,可用于在几分钟内创建应用程序。

这里有一些快速入门的屏幕录像


+1 给 FLTK(你永远无法阻止我说 EFF-ELL-TEE-KAY)!虽然公平地说,与 Qt 相比,FLTK 的小部件更少,有些较丑(这是主观的,我知道)。 - PowerApp101
关于更少的小部件; 当然是的。但我认为这可能更符合他所要求的 - “一个非常简单的 GUI”。Qt当然很棒,但不再那么轻量级了。 - epatel

5
  1. GTK+
  2. QT
  3. wxWidgets

如果您正在询问 .NET,那么(假设 Visual C++ 2008 是 .NET)Linux 和 Mac OS X 用户都可以使用 Mono 运行 .NET 应用程序。


5
自从用户界面如此简单,我建议您在Windows上使用Visual Studio开始,并将所有用户界面内容保留在单独的文件中,完全与应用程序的其余部分解耦。
然后,在OS X上创建一个Cocoa应用程序,并使用Objective C和Interface Builder编写用户界面。然后,您可以轻松地将界面与内部的C++代码连接起来。(Objective C编译器可以理解与Objective C代码在同一文件中的C++代码。)
这将使您能够产生跨平台的应用程序,看起来在Windows和OS X上都非常合适,QT或其他跨平台工具库很可能永远无法完全实现这一点。

我喜欢这个,因为它是一个免费的解决方案!其他选项如Qt看起来会很昂贵和/或难以使用,以便使事情恰到好处。 - joshcomley
Qt是完全免费的,而且非常容易使用。即使是开源版本,它们也具有VS集成功能。上面的答案建议在两种不同的语言中创建2个单独的应用程序。对于您所描述的简单GUI来说,很难证明这一点。 - PowerApp101
相比之下,对于简单的GUI来说,这并不需要太多的工作,因为大部分代码都是共享的。而且这也给了你学习Cocoa的借口。 :-) - Frederik Slijkerman

3
我建议您查看Qt工具包。它包含跨平台的UI元素。可以在VS2008中使用它。

1

Gtkmm是C++编写的,已经证明在Linux和Windows上使用Visual Studio可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接