gpt4 book ai didi

Linux,更改文本字段行为

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:26 26 4
gpt4 key购买 nike

我有一个想法,可以编写一个程序来修改 Linux 上文本字段的行为。我想要的是程序会根据所有系统中文本字段的文本方向自动更改文本输入语言。例如,如果我安装了英语和希伯来语语言,并且我在某些通常从右向左输出文本的软件中单击文本字段,那么程序会自动将文本输入语言更改为希伯来语。如果我单击从左到右输出文本的文本字段,程序会将语言切换为英语。

我不太了解 Linux 上的系统或 UI 编程,(在 Windows 上更有经验)而且我不知道从哪里开始。有没有办法在 Gnome 和 KDE 上的 GUI 元素上注册“ Hook ”?也许我应该将它添加到 Gnome 和 KDE 的代码中?

对于如何开始的任何提示,我将不胜感激。

非常感谢,

奥德。

最佳答案

首先是一些注意事项:

通常,GUI 窗口工具包的文本字段对齐要么由程序显式设置,要么基于相关文本对象中检测到的系统区域设置(至少在 Qt 和 GTK 中)设置 QLineEdit在 Qt 或 GtkEntry在 GTK 或包含它们的更高级别的布局对象中。

也就是说,为了至少为您自己的程序实现功能,您需要确定一些事情

  • GTK 或 Qt 或两者?如果您在基层实现(即不仅仅是绑定(bind)),那么这也意味着 C 或 C++ 或两者兼而有之?
  • GTK 2 或 GTK 3、QT 3 或 QT4?
  • 您想覆盖每个 GUI 工具包中的哪些文本小部件?只是我上面提到的两个或任一库中的任何或所有可能的文本小部件?
  • 无论区域设置如何,您都希望您的行为有效吗?例如,如果您设置了 LTR 区域设置,您是否希望右对齐的文本小部件来切换输入法?
  • 您想使用哪种切换输入法的方法? SCIM、XIM、ibus 或只是 immodule(以其 GTK 和 Qt 形式)?这些输入法是否支持以编程方式更改??
  • 如果用户安装了 2 种或更多 LTR 语言或安装了 2 种以上 RTL 语言会怎样?他们可以选择哪种语言吗?是否尊重当前的区域设置?

假设您想沿着 immodule 路径走下去

请参阅以下 Qt 资源

请参阅以下 GTK 资源

一般方法是一样的。

  1. 在将文本输入小部件但在小部件中显示之前实现事件处理程序。
  2. 根据小部件的对齐属性切换输入法

学习 GTK 的资源

QT 学习资源

从您的评论来看,您似乎应该编写自己的 InputMethod 机制或修改现有机制。

为了不难做到在 Gnome 和 KDE 程序中默认加载它,只需根据区域设置关联设置您的输入法。困难的部分是让 InputMethod 知道它被输入的位置。通常 InputMethod 不知道调用应用程序,更不用说编写它的 GUI 框架了。

输入法资源

关于Linux,更改文本字段行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9662865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com