2017-12-05 4 views
0

Ich versuche, ein Programm mit tkinter, die verschiedene Wörter zeigt, wenn eine Taste gedrückt wird. Also meine Frage ist die folgende: sagen, es gibt eine Schaltfläche next question und wenn es gedrückt wird, die Frage, die derzeit auf dem Bildschirm ist, wechselt zum nächsten (aktuelle ist Q1 ->button ist gedrückt -> Q2 ersetzt Q1), und Ich möchte nur einen einzigen Knopf haben, nicht verschiedene für jede Frage. Was sollte ich verwenden, um dies zu erreichen? Ich habe versucht, lists zu verwenden, aber es hat nicht geklappt.Python tkinter mehrere Befehle für eine Taste

Vielen Dank im Voraus!

+0

Bitte geben Sie eine minimale Version von dem, was Sie versucht. – Nae

Antwort

1

Die einfachste Lösung besteht darin, die Fragen in eine Liste zu stellen und eine globale Variable zu verwenden, um den Index der aktuellen Frage zu verfolgen. Der Knopf "nächste Frage" muss einfach den Index erhöhen und dann die nächste Frage anzeigen.

Verwenden von Klassen wäre besser als globale Variablen, aber um das Beispiel kurz zu halten, werde ich keine Klassen verwenden.

Beispiel:

import Tkinter as tk 

current_question = 0 
questions = [ 
    "Shall we play a game?", 
    "What's in the box?", 
    "What is the airspeed velocity of an unladen swallow?", 
    "Who is Keyser Soze?", 
] 

def next_question(): 
    show_question(current_question+1) 

def show_question(index): 
    global current_question 
    if index >= len(questions): 
     # no more questions; restart at zero 
     current_question = 0 
    else: 
     current_question = index 

    # update the label with the new question. 
    question.configure(text=questions[current_question]) 

root = tk.Tk() 
button = tk.Button(root, text="Next question", command=next_question) 
question = tk.Label(root, text="", width=50) 

button.pack(side="bottom") 
question.pack(side="top", fill="both", expand=True) 

show_question(0) 

root.mainloop() 
+0

Vielen Dank! –