Python tkinter一个按钮的多个命令

时间:2017-12-05 20:16:50

标签: python button tkinter command

我正在尝试制作一个tkinter的程序,当按下按钮时会显示不同的单词。所以我的问题如下:说有一个按钮next question,无论什么时候按下,屏幕上当前的问题都会改变到下一个(当前的一个是Q1 - > button被按下 - > Q2替换了Q1),我只希望有一个单一按钮,而不是每个问题不同的按钮。我应该用什么来完成这个?我尝试使用lists,但没有成功。

提前谢谢你们!

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是将问题放在列表中,并使用全局变量来跟踪当前问题的索引。 “下一个问题”按钮需要简单地增加索引,然后显示下一个问题。

使用类比全局变量更好,但为了保持示例简短,我不会使用类。

示例:

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()