【问题标题】:Multiple key press detection wxPython多次按键检测wxPython
【发布时间】:2012-05-05 16:19:40
【问题描述】:

我正在使用 wxPython 创建一个项目管理器,它有一个拆分器窗口。一侧是显示文件名称和打开文件的树,另一侧是用于编辑文件的 textctrl。

我遇到的一个问题是我希望它在按下 SHIFT 和 TAB 时返回 4 个空格,我有代码在按下 TAB 时添加 4 个空格。

我还有一个问题,当我将位于不同文件夹中的文件添加到我的程序 cwd 时,树会添加一个新节点,并且该文件出现在该节点下,我正在努力让树保存到文件。

我还想知道如何从外部 png 文件向树中的项目添加图标。

对于这些问题中的任何一个,如果能提供任何帮助,我将不胜感激。

【问题讨论】:

    标签: python tree wxpython


    【解决方案1】:

    要捕获多个键,您需要捕获 EVT_CHAR 或使用加速器表。后者更容易,而前者可能会给你更多的控制权。这里有几个教程给你:

    【讨论】:

    • 我已经让键盘加速器工作了,但我不知道如何让它像我向前一样返回 4 个空格:txt = ' ' * 4 self.editor.WriteText(txt)
    • 我猜它类似于 myTxt.SetInsertionPoint(myTxt.GetInsertionPoint() - 4)
    • 默认 python 包与 wxPython 按键有什么关系?
    【解决方案2】:

    我不知道使用 WxPython,所以对它没有太多了解。但一般来说,你可以做的是每当按下一个键时,调用一个回调函数,你就可以获得按下键的时间。把它保存在某个地方。当按下下一个键时,获取时间。比较两次,如果没有太大的延迟(您可以决定延迟),则意味着两个键同时按下(尽管它们不是)。

    【讨论】:

    • 这个主意不错,目前没有检测python上同时按下两个按钮的方法吗?
    • 我没有找到。无论如何,你不能同时按下两个按钮。键盘将只发送一个信号。所以会有时间延迟。
    • 我已经让键盘加速器工作了,但我不知道如何让它像我向前一样返回 4 个空格:txt = ' ' * 4 self.editor.WriteText(txt)
    • 好的。我没有得到你想要做什么。你能详细说明一下吗?
    • 就像在 Notepad ++ 这样的程序中说的,当您按下制表符按钮时,它允许您在任何文本前面添加 4 个空格并使文本对齐。但是要返回 4 个空格,以防我对文本或其他内容走得太远
    猜你喜欢
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2016-08-01
    相关资源
    最近更新 更多