【发布时间】:2014-01-31 05:42:01
【问题描述】:
我想制作可以剪切/复制/粘贴任何选定文本的菜单项(在菜单栏中,而不是在右键单击弹出窗口中)。
等效的键盘命令已经可以工作,而我没有做任何事情来启用它们。例如,我可以在输入框中输入文本,使用 Control-X 剪切,然后使用 Control-C 将其粘贴回(或其他位置)。
我看到的有关该主题的帖子归结为对单个小部件进行剪切/复制/粘贴,但这已经有效。如何让菜单项激活它们?
谢谢。
编辑: 需要明确的是,问题是:
- 如何使用于剪切/复制的菜单项作用于任何小部件中选择的任何文本
- 如何让粘贴菜单项将文本粘贴到文本光标所在的位置
同样,执行此操作的关键命令(Control-x、Control-c、Control-v)已经可以在我没有做任何事情的情况下工作。 我知道如何制作菜单;问题是我应该在菜单项上附加什么命令才能达到预期的效果。
编辑 2: 好的,我有一个可行的方法。由于键命令已经起作用,我们可以生成它们。就我而言,一切都是一个名为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
不过,可能有一种更清洁的方法可以做到这一点;知道的请回复。
【问题讨论】:
-
John,正如文本所述,所有代码所做的只是将内容打印到标准输出以进行演示。它没有解决我的问题。
-
在哪里?我搜索了“粘贴”这个词(使用左侧的小输入区域),它出现了 4 次。他们都没有解决我的问题。 “切”也是如此。如果您指出该页面,我相信我正在寻找的信息就在那里;它肯定不在您链接的页面上。
-
pygtk.org/docs/pygtk/class-gtkclipboard.html pyGTK 有剪贴板功能,可能值得研究。
-
@JohnRiselvato:pyGTK 中的函数如何帮助使用 Tkinter 的人?还是您建议他们用另一个工具包重写整个应用程序?