【问题标题】:User interface on LinuxLinux 上的用户界面
【发布时间】:2012-07-13 19:40:50
【问题描述】:

在谈到 Linux 时,我是一个完全的新手,我在第三学期的操作系统课程中接触了一些它,但仅此而已。我的操作系统交互仅限于使用 WinAPI。我正在为我的游戏引擎编写低级系统,即上下文创建、文件处理、HID、线程等,我希望能够实现相同的功能在 Windows 和 Linux 上。

在查找有关 Linux 接口系统的信息时,我只能找到对 Qt 等库的建议。这是一个很棒的库,我在 Windows 上使用过它,但是我对走阻力最小的道路并不感兴趣,因为我在学习使用 Linux 的过程中。感觉令人生畏,因为 Linux AFAIK 没有像 Windows.h 这样的东西。

你们能帮我指出正确的方向吗? Linux 将哪些本地(如果存在)库用于窗口系统(或者只是一种创建 OpenGL 上下文的方式,但具有窗口焦点、相对鼠标坐标、窗口最小化等 Windows 功能),从键盘输入/鼠标/等、文件 i/o 和线程? 不必具体,如果能够在 Google 中输入一些内容并获得正确的结果,那就太好了。

【问题讨论】:

  • 你应该只使用SDL

标签: c++ linux window


【解决方案1】:

GNU/Linux 系统上的图形显示通常使用X Window System,或简称为 X11。但与 Windows 不同的是,X11 没有“内置”的 UI 控件集,如按钮和标签。它是一个较低级别的 API,只处理打开一个窗口并将内容绘制到其中。

要构建 UI,您可以使用原始 X11 并自己绘制所有内容,但大多数程序使用 工具包,这是一个构建在 X11 之上并实现常见的库控件(例如按钮)和用于对它们进行编程的事件处理基础结构。 GTKQt 是当今最常见的两个,但还有其他的,例如 Motif(较旧,看起来不太好)。注意GNOME桌面环境是使用GTK构建的,KDE是使用Qt构建的。

如果你想在 X11 中使用 OpenGL,你可以使用GLX 创建一个 GL 上下文并将它与一个窗口相关联。它在设计上类似于用于在 Windows 中设置 GL 上下文的WGL 接口,但不同的是,为其中一个编写的代码不能用于另一个。为了方便和可移植性,应用程序通常使用更高级别的库,例如 GLFWSFML 来处理 GL 上下文创建。

正在开发一个名为Wayland 的新窗口框架,它将(可能)最终取代 X11。更高级别的库(如 GTK 和 Qt)将被移植以使用 Wayland 作为后端——就像他们可以使用 Windows GDI 和 Apple Quartz 作为后端一样——因此使用这些高级工具包的应用程序不会受到太大影响去韦兰。

【讨论】:

    【解决方案2】:

    OpenGL 网站是一个很好的资源

    http://www.opengl.org/wiki/Getting_Started#Linux

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2010-11-29
      相关资源
      最近更新 更多