linux - 使用 GUI 开发程序

标签 linux windows macos user-interface

<分区>

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

  • GTK 2.0
  • GTK 3.0
  • Qt
  • WxWidgets
  • Tk/Tcl

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

还有更多专业用法,对于游戏我可以使用这个还是我必须使用其他程序作为 blender 或 unity?

PS:我也想为 Unix(Linux、Mac)和 Windows 开发我的程序。

PS2:我特别专注于 C、C++,然后还专注于 Python 等,但写作一般。

最佳答案

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

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

AFAIK,WxWidgets 是一个非常聪明的包装器,高于许多其他工具包,包括 Windows、Qt、Gtk ……我不确定是否推荐它,除非您想要可移植性和使用系统 native 工具包。 Tcl/Tk 与 Tcl 脚本语言相关联。

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

Qt 与 KDE 有关并由 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 TextView 略优于 QTextEdit .

对于可移植游戏,您可能还会考虑 SDL .对于 3D 场景,您可能需要使用低级别 OpenGL它由 GTK 和 Qt 包装。

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

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

关于linux - 使用 GUI 开发程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15714007/

相关文章:

linux - 如何使用 bash 脚本检查参数数量?

python - 在 Ubuntu 上使用 Python Selenium 上传文件

linux - 使用matlab脚本读取其他机器上的文件

c - Windows - 我们可以从鼠标点击 "clickable"中推断出什么?

OSX Markdown 预览 PDF 上的 RStudio 出现 Pandoc 错误 43

android - 如何在我的 Mac 和 Linux 开发机器上使用 ADT

c++ - 当我尝试包含 OpenNI.h 时没有这样的文件或目录

android - 在 Windows Linux 子系统上,Android SDK 目录不存在

c++ - 关闭 LoadLibrary 打开的 DLL 文件句柄

mysql - root 用户访问被拒绝 - MAC OS 上的 mysql