2017-06-13 11 views
0
from Tkinter import * 
import csv 
root = Tk() 
def click(event): 
    global x,y 
    x, y= event.x,event.y 
frame = Frame(root, width=100, height=100) 
frame.bind("<Button-1>", click) 
frame.pack() 
root.mainloop() 

row=[] 
col=[] 

row.append(x) 
col.append(y) 

してください!どのようにループを書くので、2つのリストには、私がクリックしたすべてのxとyを含めることができます。リストにループを追加する方法

答えて

0

これは、xとyを1回だけ追加することです。クリックイベントで追加を行うことができます - ループは必要ありません!ここに明示的なループを使用する理由はありません

from tkinter import * 
import csv 
root = Tk() 
coords = [] 

def click(event): 
    global x,y 
    x, y= event.x,event.y 
    coords.append([x, y]) 
    print("Clicked at: ", x, y) 


frame = Frame(root, width=100, height=100) 
frame.bind("<Button-1>", click) 
frame.pack() 
root.mainloop() 
1

は、1はすでに、すべてのクリックイベントにあなたのためのハンドラを呼び出すroot.mainloop、によって提供されます。執筆:

from Tkinter import * 

root = Tk() 

row = [] 
col = [] 

def click(event): 
    row.append(event.x) 
    col.append(event.y) 

frame = Frame(root, width=100, height=100) 
frame.bind("<Button-1>", click) 
frame.pack() 
root.mainloop() 

root.mainloop完了後にクリックそれぞれから、xのすべての座標とy座標が移入rowcolを残します。 xyをグローバルにする理由もありません。そのグローバル値は、最後の呼び出しの値を常にclickに保持します(または決してクリックしなかった場合は未定義の変数エラーを返します)。

+0

ありがとうございました! –

関連する問題