【问题标题】:Tkinter Linux version of "<Control-Shift-u>"Tkinter Linux 版本的“<Control-Shift-u>”
【发布时间】:2014-05-03 03:39:50
【问题描述】:

在 Tkinter 中用于键绑定的 "&lt;Control-Shift-u&gt;" 的 Linux 版本是什么?您可能会认为确实如此,但是,唉,似乎并非如此。例如,"&lt;Control-Shift-Tab&gt;" 的 Linux 版本是"&lt;Control-ISO_Left_Tab&gt;"。我已经搜索过,但没有找到任何相关文档。

【问题讨论】:

    标签: python linux tkinter key-bindings


    【解决方案1】:

    以下将做你想做的事:

    from Tkinter import *
    
    def proof(event=None):
        print 'ping'
    
    root = Tk()
    
    frame = Frame(root, height=100, width=100)
    frame.focus_set()
    frame.bind('<Control-Shift-KeyPress-U>', proof)
    frame.pack()
    
    root.mainloop()
    

    u 由于 shift 修饰符而变为大写,并且您想要捕获 KeyPress 事件。

    【讨论】:

    • 这适用于除 u 之外的其他字母(不过,当我问这个问题时,我没有意识到这一点),但在 Tkinter 中,由于某种原因,一些其他默认功能接管了键绑定,几乎允许与我想要的相同的 Unicode 输入法,只是它有问题,如果输入错误会禁用键盘。
    • 仅供参考,我正在绑定一个 ScrolledText 小部件。
    • 好的,我找到了解决方法。诀窍是使用菜单加速器,像这样(类似于你所说的,大写的 U):self.menu_tools.add_command(label="Insert Unicode Character", command=self.enter_code, accelerator="Ctrl+U");
    • 有趣。感谢您的 cmets @user2962794 - 我也从您的问题中学到了一些东西。大写锁定打开时是u吗?
    • 大写锁定的良好洞察力。当大写锁定打开时,它自然不会用 ctrl-U (不按 shift)做任何事情。谢谢。很有趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2021-11-25
    • 2021-02-17
    • 1970-01-01
    • 2016-09-30
    相关资源
    最近更新 更多