Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何返回带修饰语的字母的正确用法_Python_Gtk3 - Fatal编程技术网

Python 如何返回带修饰语的字母的正确用法

Python 如何返回带修饰语的字母的正确用法,python,gtk3,Python,Gtk3,组合键a+mod1应返回 用我的母语波兰语写的带尾巴的字母, 而gtk返回aogonek 如何解决此密钥和其他密钥的此问题 (……) (…)我认为问题与打印键值有关。当您捕获按键并在textview上打印时,您正在传递keyvalue def on_key_down(self, widget, event, data=None): keyval = event.keyval keyname = Gdk.keyval_name(keyval)

组合键a+mod1应返回 用我的母语波兰语写的带尾巴的字母, 而gtk返回aogonek

如何解决此密钥和其他密钥的此问题

(……)


(…)

我认为问题与打印键值有关。当您捕获按键并在textview上打印时,您正在传递keyvalue

   def on_key_down(self, widget, event, data=None):
        keyval = event.keyval
        keyname = Gdk.keyval_name(keyval)
        self.textbuffer.insert_at_cursor(keyname+'\n')
在该函数中,当您尝试打印特殊字符(如@)时,它将被打印为“at”,因为这是它的键名。 要打印此按键产生的文本,您必须将其更改为

self.textbuffer.insert_at_cursor(event.string+'\n')

或者,您也可以将keyevent传播到textview


如果您将两个按钮按键事件都传递给应用程序,它应该可以正常工作。就像(a->press mod1->press a->release mod1->release)根据我的理解,这个系列的按键应该可以正常工作。你能分享一个小的示例应用程序吗?这样你的应用程序将捕获键盘输入并打印key+modifier=modified_键?它必须在“AĄzżó322;ćgęśAą”之内吗?
   def on_key_down(self, widget, event, data=None):
        keyval = event.keyval
        keyname = Gdk.keyval_name(keyval)
        self.textbuffer.insert_at_cursor(keyname+'\n')
self.textbuffer.insert_at_cursor(event.string+'\n')