linux 图形界面 c语言

linux 图形界面 c语言,第1张

要达到你老师的要求(有窗口、按钮等),看来就需要用到 Qt, GTK+ 或者 wxWidgets。Qt 和 wxWidgets 是用 C++ 写的。GTK+ 是用 C 编写的面向对象图形接口,是 gimp 和 Gnome 的基础库,你可以考虑它。

你原来写的 C 程序也不能说就全部作废了。输入输出部分肯定是作废了,但是核心的代码肯定还是可以用的。其实,既然已经写完了,你还可以考虑图形化界面和字符界面并用的办法,这也是很多 Linux 软件的风格。

主要有:

GTK,它是C写的一个通用图形库,GNOME是用它写的;

QT,它是C++写的一个类库,KDE是用它写的;

另外还有wxWidget,是一个C++的通用图形库,有很多软件是用它写的。

1.X Window

X Window 是由麻省理工学院(MIT)推出的窗口系统,简称X,它旨在建立不依赖于特定硬件系统的图形和文字显示窗口系统的标准。1987 年9 月,MIT 推出了X 系统的11 版,称为X11,它的出现标志着计算机工作站的一个新时代的到来。现在几乎所有的工作站都采用了X 窗口的标准,几乎所有的工作站上的应用软件都采用了基于X Window 的软件平台。同时,微机的X 系统也日益增多。X 窗口系统之所以能受到人们的广泛青睐,是与其优越的特点分不开的。首先,它不依赖与硬件系统的特点,使我们在任意一种计算机上用X 系统开发的图

形软件,可以不需任何修改或只需极少改动就能移植到几十种其它类型的计算机上。其次,X 是一种基于网络的窗口系统,采用X 的应用软件可以在由不同机器组成的网络上运行。我们能方便地在远程计算机上运行软件,而将结果显示到本机上。

2.SVGALib

SVGALib 是Linux 上底层的图形库,也是Linux 系统中最早出现的非X 图形支持库,它支持标准的VGA 图形模式和一些其他的模式,SVGALib 的缺点是程序必须以root权限登录,并且它是基于图形卡的,所以不是所有的硬件都支持它。自从framebuffer这个孪生姐妹诞生后,许多软件由只支持SVGALib 改变为同时支持两者,甚至一些流行的高层函数库如QT 和GTK只支持Framebuffer,作为一个老的图形支持库,SVGALib 目前的应用范围越来越小,尤其是在 Linux 内核增加了 FrameBuffer 驱动支持之后。

3.FrameBuffer

FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。这种接口将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写 *** 作,而写 *** 作可以立即反映在屏幕上。该驱动程序的设备文件一般是 /dev/fb0、/dev/fb1 等等。

4.LibGGI

GGI, 即 General Graphics Interface, 是新一代的图形支持库。GGI 的主要功能

特性有:

可在 FrameBuffer, SVGALib, X 等设备上运行, 在这些设备上是二进制兼容的;

在所有平台上提供了一致的输入设备接口, 比如鼠标和键盘;

与 LinuxThreads 线程库兼容, 接口线程安全;

提供异步绘制模式, 可提高屏幕刷新速度;

提供良好的颜色处理接口;

接口简单易用;

采用共享库机制, 实现底层支持库的动态装载;

GGI 的主要不足在于安装和配置较为复杂。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7510286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存