使用GUI开发程序

时间:2013-03-30 01:45:26

标签: linux windows macos user-interface

我认为很多开始开发的学生经常会问自己如何使用漂亮友好的GUI构建一个好的程序。好吧,我问自己和我在网上搜索过。我看到有几个用于创建GUI的工具包

  • Gtk 2.0
  • Gtk 3.0
  • Qt的
  • wxWidgets的
  • TK / Tcl的

如何在我的程序中选择使用哪种? 哪个更轻? 在差异编程语言中使用它们有区别吗?

更多的专家用法,对于游戏我可以使用这个或者我必须使用其他程序作为搅拌器或统一吗?

PS:我也希望为Unix(Linux,Mac)和Windows开发我的程序。

PS2:我特别关注C,C ++,然后关注Python等等,但总的来说是写的。

2 个答案:

答案 0 :(得分:4)

首先,在您的系统上使用已安装的工具包版本。最近的Linux发行版应该有 Qt4.8 Qt5.0 GTK3.6 或更高版本(最近发布了GTK3.8) 。不要使用GTK2。

我在这里专注于用C ++编写GUI(特别是在Linux上)

AFAIK,WxWidgets是一个非常聪明的包装器,比许多其他工具包包括Windows,Qt,Gtk,...我不确定推荐它,除非你想要可移植性和使用系统本机工具包。 Tcl / Tk与Tcl脚本语言联系在一起。

还有FOX toolkitFLTK(都是C ++ GUI工具包),但它们并没有被广泛使用。

Qt与KDE相关并由其使用。 Gtk与Gnome有关并且被Gnome使用。但是你可以在Gnome上使用Qt运行程序,或者在KDE上使用GTK运行程序。

GTK是用C语言编写的,使用自己的面向对象的机器。如果你想在惯用的C ++中编写GTK代码,可以考虑使用GTKMM(GTK上面的C ++包装器)。

Qt和GTK都是非常强大的工具包。但是,Qt为您提供了一个非常强大的Graphics View框架(Gtk还没有)。该框架使您能够将嵌套的图形项放在一起,每个项都有自己的坐标。相比之下,GTK提供了一个非常强大的Text View机制,您可以在其中混合小部件和格式化文本。恕我直言,GTK文本视图略好于QTextEdit

对于便携式游戏,您也可以考虑SDL。对于3D场景,您可能希望使用由GTK和Qt包装的低级OpenGL

现在您可能还需要一个Web界面。 Wt可能很有用(它的编程风格类似于Qt)。而FastCGI协议可能是相关的。有几个库可以在程序中嵌入HTTP服务器,例如libonionlibmicrohttpd

在Linux和Unix系统上(但不是具有Quartz的MacOSX),你应该理解X11背后的概念,即使它可能被Wayland取代。

答案 1 :(得分:0)

也许最温和的方法是使用Python本地的GUI,无论您最喜欢的桌面环境如何。 Python很容易编程,非常强大和灵活,可以很好地处理GUI(大部分在我的Fedora管理工具GUI上都是用Python编写的)。对于GUI,性能通常非常非常次要。 Python也可以在Windows上正常运行。