繁体   English   中英

tkinter上下文菜单命令无效(python 3)

[英]tkinter context menu commands have no effect (python 3)

我正在使用Python 3.5和TKinteer。 在文本小部件内部,我创建了一个上下文菜单,当用户单击鼠标右键时会显示该菜单。 但是,当我尝试创建所需的命令(剪切,复制,粘贴)时,这些命令似乎无效。

相关代码如下:

from tkinter import *
class Application:
    def __init__(self,master):
        self.master = master
        self.initUI()

    def initUI(self):
        root.title("Simple Text Editor")
        scrollBar = Scrollbar(root)
        self.textPad = Text(root, width=100, height=100, wrap='word',
                       yscrollcommand=scrollBar.set,
                       borderwidth=0, highlightthickness=0)
        scrollBar.config(command=self.textPad.yview)
        scrollBar.pack(side='right', fill='y')
        self.textPad.pack(side='left', fill='both', expand=True)

class PopupMenu:
    def __init__(self, master, *args, **kwargs):
        self.popup_menu = Menu(root, tearoff=0)
        self.popup_menu.add_command(label="Cut",
                                    command=lambda: app.textPad.event_generate('<Control-x>'))
        self.popup_menu.add_command(label="Copy",
                                    command=lambda: app.textPad.event_generate('<Control-c>'))
        self.popup_menu.add_command(label="Paste",
                                    command=lambda: app.textPad.event_generate('<Control-v>'))

        app.textPad.bind("<Button-3>", self.popup)
        self.popup_menu.bind("<FocusOut>",self.popupFocusOut)

    def popup(self, event):
        self.popup_menu.post(event.x_root, event.y_root)
        self.popup_menu.focus_set()

    def popupFocusOut(self, event=None):
        self.popup_menu.unpost()

root = Tk()
app = Application(root)
popupMenu = PopupMenu(root)
root.mainloop()

您不想生成<Control-x>等,而是生成虚拟事件<<Cut>><<Copy>><<Paste>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM