gpt4 book ai didi

python-keybinder 和右热键字符串

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

Python-keybinder 用于在我的程序中设置全局热键。 GtkToggleButton 小部件用于从用户检索键绑定(bind)(按键事件/按键释放事件)。

用户按下切换按钮并按下一些键(左 Control + t,f.e.)。 Togglebutton 的事件(按键事件)返回“Control_L”和“t”。程序将其保存到字符串“t”中并调用 keybinder.bind(“t”, callback)。用户按下该热键......没有任何反应。经过一段时间的挖掘,我发现了一些奇怪的事情——keybinder 理解“Control”(没有_L/_R)、“Alt”等,但不理解“Control_L”、“Alt_L”……文档接下来说:

来自 python-keybinder 文档的文本:

bind(...)
bind (keystring, callback, user_data) -> bool

Keystring should be in the format understood by
gtk.accelerator_parse. An example is '<Ctrl>space'.

来自 gtk/gtkaccelgroup.c 的文本:

  • gtk_accelerator_parse:*
  • 解析表示加速器的字符串。
  • 格式类似于“ a”或“ F1”或
  • z”(最后一个是按键释放)。
  • 解析器相当自由,允许小写或大写,
  • 还有缩写,例如“ ”和“ ”。
  • 使用 gdk_keyval_from_name() 解析键名。

来自 gdk/gdkkeynames.c 的文本:

  • gdk_keyval_from_name:*
  • 将键名转换为键值。*
  • 名字和里面的名字一样
  • 头文件
  • 但没有前导“GDK_KEY_”。

好的,最后来自 gdk/gdkkeysyms.h 的文本:

205 #define GDK_KEY_Control_L 0xffe3
206 #define GDK_KEY_Control_R 0xffe4

如何在不将“Control_L”替换为“Control”、将“Alt_L”替换为“Alt”等的情况下设置和使用快捷键?

更新:Linux、Python 2.4-2.7

Upd2:我想看看“左控制”和“右控制”之间的区别,并将这些键用作不同的按钮。我怎样才能用 gtk.accelerator_parse() 做到这一点?有办法吗?

感谢。

最佳答案

GTK 提供 GtkCellRendererAccel对于设置键绑定(bind),这可能更容易,因为您不必担心在两种键描述格式之间进行转换。

关于python-keybinder 和右热键字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528457/

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