Joh*_*n T 23 c c++ linux native
我的主要经验是使用C && C++,所以我更愿意和他们在一起.我不想使用像QT,GTK或wxWidgets或任何工具包那样的东西.我想学习本土编程,这种目的无法实现.考虑到这一点,我也想避免使用Java.
我理解gnome和xfce以及KDE等都是Linux的桌面环境,安装的基础通常是X(Xorg).在为Linux编码时,您是为X编码还是为桌面环境编写代码?对于Linux,是否有一个标准的Linux头文件(如win32有windows.h)?或者是每种桌面环境的不同编码方法?
任何帮助是极大的赞赏.
pax*_*blo 65
X是一个可编程的可怕层,尽管你打算避免使用Java,QT或任何优秀的UI抽象层,但你将通过编码到那个级别来做自己的伤害.我已经完成了(很久以前当Motif在我们使用的平台上处于起步阶段时)如果有一个更简单的方法,我不会再这样做了.
你对"本地编程"这个短语的使用让我感到困惑.如果您想学习本机编程,那就是您选择调用的API.使用类似的推理,你不应该用C编码,而是选择汇编程序(或直接机器代码),因为C提供了对硬件的抽象.
如果你想学习X编程,那很好.您最终会对您的界面有更多的控制权,但几乎所有其他人在软件交付方面都会超出您的表现.我自己,我更愿意编写一个更高级别的API,我可以在许多平台上使用它 - 它给了我更快的交付时间和更多的市场潜力.
你不是用原子建造房子,而是用砖砌成.我的建议是使用工具,这就是他们的用途.
Cha*_*tin 44
我不想使用像QT,GTK或wxWidgets或任何工具包那样的东西.我想学习本土编程,这种目的无法实现.
不,你没有.回到X11的早期版本,比如R1或R2,我在Xlib中编写了一个完整的"Hello,world"程序.
大约700行C.
你不想去那里.
GTK、QT 和 wx 是基于 X 构建的工具包,提供更友好的 API。
如果您不使用现有的工具包,您将需要在非常低的级别上编写内容 - 直接处理鼠标和键盘事件。如果您想要一个按钮或文本框,您必须使用低级 xlib 原语自己编写。
在尝试此操作之前,您可能最好选择您喜欢的桌面环境的工具包并开始使用。
我觉得有必要在这里反驳一下其他答案的一致。X11确实是低级的。但要“真正”了解发生了什么,您应该熟悉 X11 的工作原理。由于所有工具包都在 X 之上工作,因此无论您喜欢与否,您都在使用它。网上有一个很好的教程,我懒得去搜索。它指导您构建一个简单的 Hello World。为此,您必须学习如何创建窗口、请求事件、映射窗口以及循环处理事件。您甚至可以在亚马逊上订购一些二手书。O'Reilly 第 1 卷和第 2 卷(目前是最便宜的版本,但没有早于 X11R4 的版本)对于参考和了解各个部分如何协同工作的完整故事至关重要。然而,对于学习来说,最好的书是 Eric Johnson 和 Kevin Reichard 编写的《X Window 应用程序编程》。
正如其他人所说,在这段旅程的某个时刻,你会发现你已经受够了。两页代码只是为了选择视觉效果,然后您仍然需要填充颜色图,然后才能绘制自定义位图。然后经过两天的重写和调试,发现一切确实有效;你只是忘了XFlush()!
这种斗争很重要,因为一旦找到你喜欢的工具包,你就会更加欣赏这些工具包。