HeJ小鼠,
我想在Python中编写一个GUI,用于将提示词(来自列表)与条目进行比较。这可能会多次,所以我想制作一个删除条目和标签的按钮,然后提示列表中的下一个单词。 因此,单击按钮将操纵标签上显示的文本。 公交车如何做到这一点?
我的代码摘录是:
from Tkinter import *
i = 0
vocablist = ['one', 'two', 'three']
np.random.shuffle(vocablist)
vocab = vocablist[i]
(...)
class simpleapp_tk(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
(...)
self.label = Tkinter.Label(self, text=vocab,anchor="w")
self.label.grid(column=1,row=0)
def clear_text():
global i
self.entry.delete(0, 'end')
i += 1 # don't know if this works!
self.label.insert(0, vocab) # this does not work!
button_next = Tkinter.Button(self,text=u"next", command=clear_text)
button_next.grid(column=1,row=1)
if __name__ == "__main__":
app = simpleapp_tk(None)
app.title('rehearse vocabulary: translate!')
app.mainloop()
我也试过
self.label.config(text=vocab)
而不是.insert-function。
我想知道问题是否是命令,或者它是否无法更新计数器,然后自动更新变量" vocab"到列表中的下一个元素?
感谢您的帮助!
答案 0 :(得分:0)
尝试使用widget['attribute'] = 'value'
。执行以下操作:
def action(event=None): # event in case you bind to a keypress
entry.delete('0', END) # clear the entry
label['text'] = "" # set label's widget text to ""
next_word()
其中entry
是您的条目小部件,label
是您的标签,next_word()
会提示输入下一个单词。