X11上的编辑框

Edit box on X11

本文关键字:编辑 X11      更新时间:2023-10-16

有什么方法可以在普通X11 C或C 代码中使用一个简单的编辑框?

由"普通X11 C或C 代码"我的意思是在XCreateSimpleWindow创建的窗口上创建控件,为win32 API中的CreateWindow("edit"..)等效。

如果没有,我的选择是有什么选择的简单编辑框,其中一个简单的依赖量(即请不要QT)对于简单的编辑框输入对话框?

普通X11没有这样的功能 - 它是A 低级窗口工具包(打开和维护Windows,接收输入事件,绘制到Windows)。

如果您准备从可用的原始词编写这样的编辑窗口,那么您就可以了。如果没有,您需要使用一些为您使用的工具包。提供此类功能的最简单,最轻巧的人可能是雅典娜小部件(如果您对外观和感觉并不特别选择)。

x11是一个非常低的级别协议。它提供了创建单个窗口,借鉴它们并接收单个输入事件的能力,仅此而已。就是这样。

提供高级用户界面(例如编辑框)的工作是针对QT或GTK等更高级别的工具包。这些是最常见的工具包。

也有一些人口较少的人。

,但最重要的是,您没有任何"编辑控件",您可以使用Xlib(您用于谈论X11协议的库)获得。如果您想要的唯一依赖性是Xlib,那么使用您自己的代码实际上实现了编辑控件。如果您不想使用任何常见的字体处理库,例如fontconfig和freetype,则必须编写代码以枚举X服务器的内置字体,处理键盘输入并绘制编辑控件。只是将X11中使用的某种晦涩的键盘编码转换为可用的东西,例如UTF-8或Unicode的工作,将采用几百行代码。

因此,这里的答案是:使用QT或GTK。

作为x小部件的低级替代方案,您可以使用XAW库或Motif Library或Xforms库。