【问题标题】:Xlib: draw a text input box and read text as it is typedXlib:绘制一个文本输入框并在键入时读取文本
【发布时间】:2011-01-25 07:58:24
【问题描述】:

我正在尝试实现一个文本框,用户可以在其中键入、使用箭头键、退格、删除等。我希望能够知道此文本框中的内容,而无需用户提交任何内容。我想我可以捕捉按键事件,找到一种显示光标的方法,并且基本上可以手动构建一个最小文本编辑器——但这也许是在重新发明轮子?

我所追求的有点像拼字游戏。窗口顶部有几个字母,底部有一个文本框。每次您键入一个字母时,它都会从顶部窗格中消失,以便您知道何时用完它们。我希望能够用箭头键编辑该文本,因为我希望用段落而不是 7 个字母拼字游戏。

我有窗口显示,源文件被处理并显示为允许的字母列表......我只想在用户输入他们的句子时更新允许的字母列表。 Xlib 可以做到这一点吗?还有其他更合适的吗?谢谢!

【问题讨论】:

  • XCB 代替 Xlib 实际上是一个非常好的主意。 (xcb.freedesktop.org)
  • @Prof.Falken XCB 更好,但是关于它的文档要少得多,而且当前文档中充满了 TODO。

标签: c text keyboard xlib


【解决方案1】:

Xlib 可以做到这一点吗?
为什么可以,Xlib 可以做很多事情。通过使用 X 的 event processingdrawing functions,您描述的内容似乎很简单。

不过,Xlib 非常笨拙,而且 IMO 仅当您需要接近 X 协议时才应使用它。 (即使那样也有更新的替代品,比如 XCB。但我离题了。)

您可能会发现使用现代工具包(如 GTK+ 或 Qt)更容易。

例如,这可能表示为带有“按键事件”处理程序的GtkEntry

【讨论】:

  • +1 提到 XCB,这是我的第一个想法。如果您从头开始做事,XCB 比 Xlib 更好。
猜你喜欢
  • 2015-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
相关资源
最近更新 更多