0

スクリプトを変更してボーダーレスにしようとしていますが、子ウィジェットが上にない親ウィジェットの部分にマウスイベントを取得することに固執しています....

class Application:

    def __init__(self, root):
        self.root = root
        self.root.overrideredirect(True)
        self.root.attributes( '-topmost', 1 ) #always on top
        self.root.title('ReaChorder')
        ttk.Frame(self.root, borderwidth=5, relief="sunken", width=740,height=300)#.pack()
        self.init_widgets()


    def init_widgets(self):
        fn = (my_path + '/bg_740x300.gif') ;  self.bg = Tkinter.PhotoImage(file=fn)
        self.bgLabel = ttk.Label(self.root, image=self.bg)
        self.bgLabel.place(x=0, y=0, relwidth=1, relheight=1)
        self.bgLabel.bind("<ButtonPress-1>", self.StartMove)
        self.bgLabel.bind("<ButtonRelease-1>", self.StopMove)
        self.bgLabel.bind("<B1-Motion>", self.OnMotion)
        self.bgLabel.pack()
        self.bgLabel.pack_propagate(False)

        self.btns = ttk.Button(self.bgLabel,  text='Draw chords into MIDI take...', width='25')
        self.btns.place(x=562, y=260) 
        self.btns.bind('<Button-1>', lambda event: self.drawMidiNow())

... bgLabel にバインドされたマウス イベントは呼び出されません。だれか親切にも男子生徒の誤りを指摘してくれませんか?

4

1 に答える 1

0

イベントが発生したウィジェットでのみレポートされることをご存知ですか? ラベルにバインドを設定すると、そのイベントはマウスがそのラベルの上にある場合にのみ発生します。イベントを親で処理したい場合は、親にもバインディングを設定する必要があります。

于 2013-09-12T20:11:32.297 に答える