0

私のプログラム:

#!/usr/bin/python
from Tkinter import *
class App:
    def __init__(self,master):
        frame = Frame(master,width = 100,height = 100)
        frame.bind('<Return>',self.ret)
        frame.pack()

    def ret(self):
        print "You pressed enter"

root = Tk()
app = App(root)
root.mainloop()  

ウィンドウが開きますが、return または enter を押しても何も起こりません。

4

1 に答える 1

3

これは、イベントに応答するためにフレームにフォーカスを設定する必要があるためです。

frame = Frame(master,width = 100,height = 100)
frame.focus_set()

ちなみに、コールバックは Tkinter イベントを引数として受け取るため、retとして定義def ret(self, event)するか、ラムダ関数でイベントをバインドし、引数を使用しないでください。

frame.bind('<Return>', lambda e: self.ret())
于 2013-06-23T18:06:27.110 に答える