我想制作菜单项(在菜单栏中,而不是在右键弹出窗口中),可以剪切/复制/粘贴所选文本。
等价的键盘命令已经可以使用,而我没有做任何事情来启用它们。例如,我可以在输入框中输入文本,使用Control-X将其剪切,然后使用Control-C将其粘贴回来(或粘贴到其他位置)。
我看到的关于此主题的帖子都 boil down to cut/copy/paste for individual widgets,但这已经可以工作了。我如何使菜单项激活它们?
谢谢。
编辑: 只是为了清楚,问题是:
- 如何使剪切/复制菜单项对任何小部件中选择的文本起作用
- 如何使粘贴菜单项在文本光标所在的位置粘贴文本
同样,执行此操作的键盘命令( Control-x,Control-c,Control-v)已经可以使用,而无需我进行任何操作。 我知道如何制作菜单;问题只是我应该附加到菜单项的命令以产生所需的效果。
第二次编辑: 好的,我找到了一种可行的方法。因为键盘命令已经在工作,所以我们可以直接生成它们。在我的情况下,所有东西都是一个名为noteBook 的笔记本电脑,所以
lambda: self.noteBook.event_generate('<Control-x>')
可以剪切所需内容。例如:
editmenu.add_command(label="Cut", accelerator="Ctrl+X", command=lambda: self.noteBook.event_generate('<Control-x>'))
使用中:https://github.com/lnmaurer/qubit-control-interface/commit/c08c10a7fbc4a637c1e08358fb9a8593dfdf116e
但是,也可能有更好的方法来解决这个问题;如果您知道,请回复。