TKinter用“下一步”按钮更改标签

时间:2014-01-31 02:32:34

标签: python button tkinter

该计划旨在一次审查一组句子。我想显示一个,然后当点击“下一个”按钮时,它显示下一个输入。现在它通过它们爆炸了。我怎么让它停下来?我有一种感觉,我错过了一些小事。 所以这是代码:

from Tkinter import * 
import ttk

root = Tk()

def iterate(number):
    return number + 1

inputs = open("inputs.txt").readlines
lines = inputs()
numlines = len(lines)
x=0
for tq in lines:
    sentence = lines[x].strip('\n')
    sen = StringVar()
    sen.set(sentence)
    x = iterate(x)
    ttk.Label(textvariable = sen).grid(column=1, row=1, columnspan=99)
    ttk.Button(text = "next", command = x).grid(column=99, row=5, pady=5)   
    root.update()
root.mainloop()

2 个答案:

答案 0 :(得分:0)

要更改标签中显示的内容,您可以调用configure方法,为其创建任何相同的参数。因此,您将创建一个标签,然后调用此方法来修改显示的内容。

基本逻辑如下:

def do_next():
    s = get_next_string_to_display()
    the_label.configure(text=s)

the_label = ttk.Label(...)
the_button = ttk.Button(..., command=do_next)

答案 1 :(得分:0)

这是我最终用来解决问题的代码:

from Tkinter import * 
import ttk

root = Tk()
root.title("This space intentionally left blank")
root.minsize(800,200)
mainframe = ttk.Frame(root) 
mainframe.grid(column = 0, row = 0)

def nextInputs(*args):     
    sen.set(inputs())

inputs = open("inputs.txt").readline
sen = StringVar()
ttk.Label(mainframe, textvariable=sen).grid(column=1, row=1, columnspan=99)
Button = ttk.Button(mainframe, text = "next", command = nextInputs).grid(column=99, row=5, pady=5)
root.bind('<Return>', nextInputs)
root.mainloop()