问题描述
- linux api为什么只有内存 线程 进程 文件方面的?
- 1、那么界面是不是要靠OpenGL? QT底层是OpenGL实现的吗?
2、我如果不需要好的界面,只有API能实现任何功能吗?还是得学些别的?
解决方案
终极解答:
1. 图形界面GUI,有很多不同的实现库,而且分很多层逐级实现,例如你说的QT界面库,它在不同的操作系统平台上底层依赖的更基础的图形库也不同,
在Windows平台依赖GDI32.dll,在嵌入式平台可能依赖于fb,也可能依赖于XWindow。至于OpenGL是一个相当底层的图形库标准,不同平台的具体
实现方式当然也不相同。目前,微软为了自身Direct3D图形库的发展,已经不直接支持OpenGL,所以在Windows上进行OpenGL编程,需要第三方DLL
从显卡驱动导出OpenGL API。
- 严格来说GUI并不是操作系统的必备功能。尤其是在今天B/S程序占主流的年代,服务器很少配有显示器,更别说GUI了。当然了GUI对于桌面程序非常重要,Windows也就是靠可靠好用的GUI才赢得了天下。如今智能手机的兴起也是与漂亮的GUI分不开。
至于该学什么,这要看你的需求。个人建议按照需求和兴趣去学习。如果你的主要工作是开发Web程序,那么GUI就是html。如果你做桌面开发,或多或少离不开GUI的功能。
GUI编程是很复杂的,而且需要美工,如果不是专业做这个,浅尝辄止即可。把更多的精力放到那些更重要更广泛的功能上: 线程进程,文件系统,网络,架构设计。
解决方案二:
linux仅仅是一个内核,这一点和Windows不同,如果要类比,Linux相当于NTDLL中的功能。
至于之上的,有各种不同的库,比如GTK GNOME KDE等等。当然,理论上来说,什么函数都不要也能做界面,因为本质上界面就是画图,而画图就是操作硬件。
至于OpenGL,另一个回答中我说了,这个不是任何界面库所依赖的,因为要考虑和遗留显卡的兼容问题。
解决方案三:
linux比Windows更开放,各个API功能也比Windows上面灵活,界面方面会比较少一点。
OpenGL底层肯定也是封装的API
时间: 2024-10-29 10:53:15