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