我必须在 Python 中修复我的复制粘贴程序中的某些内容

I have too fix something in my Copy&Paste program in Python

这是我的复制粘贴程序:

from tkinter import *
import Pmw
class CopyTextWindow(Frame):

    def __init__(self):
        Frame.__init__(self)
        Pmw.initialise()
        self.pack(expand=YES, fill=BOTH)
        self.master.title("ScrolledText Demo")
        self.frame1=Frame(self, bg="White")
        self.frame1.pack(expand=YES, fill=BOTH)

        self.text1=Pmw.ScrolledText(self, text_width=25, text_height=12, text_wrap=WORD,
                              hscrollmode="static", vscrollmode="static")
        self.text1.pack(side=LEFT, expand=YES, fill=BOTH, padx=5, pady=5)

        options = ["Copy", "Paste"]
        self.selectedOption = StringVar()

        self.menu = Menu(self.frame1, tearoff=0)

        for option in options:
            self.menu.add_radiobutton( label=option, variable=self.selectedOption,
                                   command=self.ExecuteOption)

        self.text1.bind("<Button-3>", self.popUpMenu)

    def popUpMenu(self, event):
        self.menu.post(event.x_root, event.y_root)

    def ExecuteOption(self):
        if self.selectedOption.get()=="Copy":
            self.CopiedText=self.text1.get(SEL_FIRST, SEL_LAST)
        else:
            self.text1.settext( self.text1.get()+self.CopiedText)

def main():
    CopyTextWindow().mainloop()

if __name__=="__main__":
    main()

在这个程序中,我想制作一个 GUI,您可以在其中复制和粘贴您选择的文本。当您按下鼠标右键时,会出现一个带有复制和粘贴选项的小菜单。

程序打开了,但是当我按下鼠标右键时,没有出现菜单。 Python 也不会报错。

我需要了解我在这段代码中的错误。

由于我忽略的原因,当绑定在文本或框架上时似乎不会触发该事件,但当它在主window:

from tkinter import *
import Pmw
class CopyTextWindow(Frame):

    def __init__(self, master=None):
        # I've added a master option to pass to the frame
        Frame.__init__(self, master)
        Pmw.initialise()
        self.pack(expand=YES, fill=BOTH)
        self.master.title("ScrolledText Demo")
        self.frame1=Frame(self, bg="White")
        self.frame1.pack(expand=YES, fill=BOTH)

        self.text1=Pmw.ScrolledText(self, text_width=25, text_height=12, text_wrap=WORD,
                              hscrollmode="static", vscrollmode="static")
        self.text1.pack(side=LEFT, expand=YES, fill=BOTH, padx=5, pady=5)

        options = ["Copy", "Paste"]
        self.selectedOption = StringVar()

        self.menu = Menu(self.frame1, tearoff=0)

        for option in options:
            self.menu.add_radiobutton( label=option, variable=self.selectedOption,
                                   command=self.ExecuteOption)

    def popUpMenu(self, event):
        print("ok")
        self.menu.post(event.x_root, event.y_root)

    def ExecuteOption(self):
        if self.selectedOption.get()=="Copy":
            self.CopiedText=self.text1.get(SEL_FIRST, SEL_LAST)
        else:
            self.text1.settext( self.text1.get()+self.CopiedText)

def main():
    # main window
    root = Tk()
    ctw = CopyTextWindow(root)
    # bind on the main window
    root.bind("<Button-3>", ctw.popUpMenu)
    root.mainloop()

if __name__=="__main__":
    main()