2013-11-26 5 views
0

Я пытаюсь выяснить, как подсчитать, сколько раз щелкнуть мышью в окне, чтобы установить лимит на сумму.Python: подсчет и печать щелчков мыши (графика Zelle)

Что я делаю - это игра, в которой должен быть найден невидимый круг, и я хочу, чтобы различные трудности влияли на то, сколько кликов разрешено, пока вы не проиграете игру. Но у меня возникают проблемы с подсчетом щелчков мыши.

def mouseClicks(): 
     global click 
     click=click+1 

Не совсем уверен, как бы я установил его для проверки win.getMouse каждый раз. Любая помощь приветствуется.

ответ

1

Вот что-то очень простое:

from graphics import * 

def main(): 
    win = GraphWin("My Window", 100, 100) 
    clickCounter = 0 
    while clickCounter < 10: 
     win.getMouse() # Pause to view result 
     clickCounter += 1 
     print clickCounter 

main() 

Это не реально полезно, хотя, как не вызывая win.getMouse() паузами до щелчка мыши.

Zelle построен поверх Tkinter, но, похоже, абстрагирует программирование, управляемое событиями.

Однако вы можете использовать мощь Tkinter:

from graphics import * 

clickCounter = 0 

def click(event): 
    global clickCounter 
    clickCounter += 1 
    print clickCounter 

def sillytask(): 
    print 'Just waiting around' 
    global clickCounter 
    if clickCounter >= 10: 
     win.quit() 
    else: 
     win.after(1000, sillytask) 

win = GraphWin("My Window", 100, 100) 
win.bind('<Button-1>', click) 
win.after(1000, sillytask) 
win.mainloop() 

Здесь мы bind щелчок на функцию обратного вызова. sillytask показывает, что другие вещи в основном цикле могут работать, и событие click будет по-прежнему срабатывать.