ich habe vorhin als Python-Neuling ein simples Programm geschrieben.
Das ganze läuft so ab:
Es gibt einen Button, auf den geklickt werden kann.
Dann erscheint in einem Canvas ein grünes Quadrat.
Sobald man in dieses Quadrat mit der Maus reingeht,
dauert es eine unbestimmte Zeit, bis ein zweites Quadrat an zufälliger Stelle erscheint.
Der Anwender soll so schnell wie möglich mit der Maus in das zweite Kästchen gehen.
Sobald er ankommt, erscheint unten angezeigt wie lange er gebraucht hat.
So weit, so gut, ABER!!
Folgendes Problem:
wenn der Anwender ein zweites mal in das Quadrat geht, so erscheint eine neue Zeit.
Ich hab das versucht mit .unbind zu vermeiden, jedoch erfolglos.
Hoffe das wahr verständlich
Hier kommt das programm
Code: Alles auswählen
# -*- coding: cp1252 -*-
#reaktionstest.py
import time, random
from Tkinter import *
def found(e):
stopp=time.clock()
dauer=stopp-beginn
ausgabe.config(text = 'Du hast %f Sekunden gebraucht.' %dauer)
ausgabe.pack()
canvas.unbind('feld')
def starten2(e):
canvas.unbind('startfeld')
global beginn
xa = random.uniform(15,270)
ya = random.uniform(15, 270)
xz= xa+10
yz = ya+10 #koordinaten
time.sleep(random.random()*10) #warten für 1-10 sec.
global feld
feld=canvas.create_rectangle(xa, ya, xz, yz, fill = 'red', tags = 'feld')
beginn=time.clock()
canvas.tag_bind(feld, '<Enter>', found)
def starten1(e):
global startfeld
startfeld=canvas.create_rectangle(140, 140, 160, 160, fill = 'green', tags= 'startfeld')
canvas.tag_bind(startfeld, '<Enter>', starten2)
root=Tk()
root.title('Reaktionstest')
root.minsize(450, 450)
ueberschrift=Label(root, text = 'Reaktionstest',\
fg = '#800000' , font="\"Eurostile\" 23")
ueberschrift.pack()
beschreibung=Label(root, text='Beschreibung: \nKlick auf "Start Test".'+\
'Es erscheint ein grünes Feld. Gehe mit dem Mauszeiger in dieses Feld'+\
'\nBleibe mit dem Curser solange in dem grünen Feld bis ein neues Feld erscheint'+\
'\nVersuch so schnell wie möglich mit der Maus in das neue Feld zu kommen')
beschreibung.pack()
start=Button(root, text= 'Start Test')
start.pack()
Widget.bind(start, '<Button-1>', starten1)
canvas = Canvas(root, relief = SUNKEN, border = 4, width = 300, height = 300,\
background = "white")
canvas.pack()
ausgabe=Label(root, text = ' ')
ausgabe.pack()
Es gibt noch einige schwachstellen^^
Freue mich über jede Anregung, aber bitte nicht zu komplieziert^^