user5636721
user5636721

Reputation:

I have an error in python with tkinter and need help(school project)

I have to create a little text adventure for school in python. To detect keyboard inputs I decided to use tkinter and disable the window. All is working fine but if I try to calculate with a variable after a key was pressed, I get the following error...This is the error message

This is the script I am using(I don't have much experience with python...)

import os 
import sys 
import tkinter 


menueeintraege = ["Start", "Steuerung", "Credits", "Beenden"]
index = 0


def menueaufbauen():
    os.system("cls")
    print("Menue")
    print("")
    print("")
    for i in range(4):    
        if i == index:
            print(menueeintraege[i] + "<")
        else:
            print(menueeintraege[i])

menueaufbauen()


def startgame():
    os.system("game.py");

def steuerung():
    os.system("cls")
    print("Steuerung")
    print("")
    print("Norden = Pfeiltaste Hoch")
    print("Sueden = Pfeiltaste Runter")
    print("Osten = Pfeiltaste Rechts")
    print("Westen = Pfeiltaste Links")
    print("Bestaetigen = Enter")

def credits():
    os.system("cls")
    print("Credits")
    print("")
    print("Jannik Nickel")
    print("Thomas Kraus")
    print("")

def exitgame():
    sys.exit()


def menueauswahl(taste):
    print(taste)
    if taste == "Up":
        if index > 0:
            index -= 1
            print(index)

    elif taste == "Down":
        if index < 3:
            index += 1

    menueaufbau()


def tasteneingabe(event):
    tastenname = event.keysym
    menueauswahl(tastenname)

fenster = tkinter.Tk()
fenster.bind_all('<Key>', tasteneingabe)
fenster.withdraw()
fenster.mainloop()

I think the mistake have to be in the last part of the script, I hope someone here knows a solution because it's really important for school.

Thanks for any help (I'm using Visual Studio 2015)

Upvotes: 0

Views: 79

Answers (1)

Travis M
Travis M

Reputation: 363

Okay so I caught a couple of errors. The first is that you are referencing a global variable (index) inside of a function. To do that, you need to tell python that you are using a global variable.

def menueauswahl(taste):
    global index
    print(taste)

And also you need to change the function name in line 61 to menuaufbauen().

Upvotes: 0

Related Questions