Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Linux上的用户界面_C++_Linux_Window - Fatal编程技术网

C++ Linux上的用户界面

C++ Linux上的用户界面,c++,linux,window,C++,Linux,Window,说到Linux,我是一个完全的新手,我在第三学期的操作系统课程中接触过一些,但仅此而已。我的操作系统交互仅限于使用WinAPI。我正在为我的游戏引擎编写低级系统,即上下文创建、文件处理、HIDs、线程等。我希望能够在Windows和Linux上实现相同的功能 在查找有关Linux接口系统的信息时,我所能找到的只是对Qt之类的库的建议。这是一个很棒的库,我在Windows上使用过它,但是我对走阻力最小的道路不感兴趣,因为我正在学习使用Linux。这让人感到气馁,因为Linux AFAIK中没有类似

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

在查找有关Linux接口系统的信息时,我所能找到的只是对Qt之类的库的建议。这是一个很棒的库,我在Windows上使用过它,但是我对走阻力最小的道路不感兴趣,因为我正在学习使用Linux。这让人感到气馁,因为Linux AFAIK中没有类似Windows.h的东西


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

OpenGL网站是一个很好的资源


OpenGL网站是一个很好的资源


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

要构建UI,您可以使用原始X11并自己绘制所有内容,但大多数程序都使用工具箱,这是一个构建在X11之上的库,可以实现常用控件(如按钮)和用于使用它们编程的事件处理基础设施。这是目前最常见的两种,但也有其他的,比如(它比较老,看起来不太好看)。请注意,桌面环境是使用GTK构建的,并且是使用Qt构建的

如果要在X11中使用OpenGL,可以使用创建GL上下文并将其与窗口关联。它在设计上与用于在Windows中设置GL上下文的界面相似,但差别很大,为其中一个编写的代码不能用于另一个。为了方便和可移植性,应用程序通常使用更高级别的库(如或)来处理GL上下文创建


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

GNU/Linux系统上的图形显示通常是通过,或者简称X11。但与Windows不同,X11没有按钮和标签等“内置”UI控件集;它是一个较低级别的API,处理的只是打开一个窗口并将内容引入其中

要构建UI,您可以使用原始X11并自己绘制所有内容,但大多数程序都使用工具箱,这是一个构建在X11之上的库,可以实现常用控件(如按钮)和用于使用它们编程的事件处理基础设施。这是目前最常见的两种,但也有其他的,比如(它比较老,看起来不太好看)。请注意,桌面环境是使用GTK构建的,并且是使用Qt构建的

如果要在X11中使用OpenGL,可以使用创建GL上下文并将其与窗口关联。它在设计上与用于在Windows中设置GL上下文的界面相似,但差别很大,为其中一个编写的代码不能用于另一个。为了方便和可移植性,应用程序通常使用更高级别的库(如或)来处理GL上下文创建

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

您可能应该只使用。您可能应该只使用。