2016-07-16 20 views
0

私は、キャンバス上でpythonのカメモジュールを使用するプロジェクトを持っており、私が作ったカスタムコマンドを実行する関数に<Return>キーをバインドしようとしています。これは一例です:Tkinter:バインディング関数の問題

from tkinter import * 
import turtle 
root = Tk() 


mainframe=Frame(root) 
mainframe.pack(fill=BOTH) 
screen = turtle.ScrolledCanvas(mainframe) 
tt = turtle.RawTurtle(screen) 

def scrollStart(event): #these functions are for scrolling the widget 
    screen.scan_mark(event.x, event.y) 
def scrollDrag(event): 
    screen.scan_dragto(event.x, event.y, gain = 1) 

text = Text(root) 
text.pack() 

def executeCommand(): #Problem here 
    def moveForward(pixels): 
     tt.forward(pixels) 



root.bind("<Return>",executeCommand) 

root.mainloop() 

しかし、私はそれを実行してmoveForward(15)を打つ、それは言う:

TypeError: executeCommand() takes 0 positional arguments but 1 was given 

答えて

2

あなたはexecuteCommand()に引数を注入する必要があります。その定義を次のように変更してください:

def executeCommand(event): 
    def moveForward(pixels): 
     tt.forward(pixels) 
+1

ありがとうございます。イベントのことをすべて忘れた –

関連する問題