我正在为Python教程做一个数字猜谜游戏。我是Python新手,使用Python Shell和2.7.5版。我已经完成了除此之外的所有功能。
我必须制作一个重置按钮,这让我心烦意乱。我不知道如何定义它。
self.reset_bttn = Button(self, text = "Starta om", command=reset)
self.reset_bttn.grid(row = 6, column = 1, sticky = W)
def reset():
global
这是带有一些标签的代码的开头。
from Tkinter import *
import random
number = random.randrange (100) + 1
tries = 0
class Application(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.grid()
self.create_widgets()
def create_widgets(self):
self.inst_lbl = Label(self, text = "Följ alla stegen")
self.inst_lbl.grid(row = 0, column = 0, columnspan = 2, sticky = W)
self.name_lbl = Label(self, text = "Spelarens namn: ")
self.name_lbl.grid(row = 1, column = 0, sticky = W)
self.name_ent = Entry(self)
self.name_ent.grid(row = 1, column = 1, sticky = W)
self.guess_lbl = Label(self, text = "Skriv in din gissning.")
self.guess_lbl.grid(row = 2, column = 0, sticky = W)
self.guess_ent = Entry(self)
self.guess_ent.grid(row = 2, column = 1, sticky = W)
self.gap1_lbl = Label(self, text = " ")
self.gap1_lbl.grid(row = 3, column = 0, sticky = W)
答案 0 :(得分:1)
您可能希望将以下内容添加到Application类中:
class Application(Frame):
# ... all the stuff you've copied in your question
def create_widgets(self):
# ... all the stuff again
self.reset_bttn = Button(self, text = "Starta om", command=self.reset)
def reset(self):
self.name_ent.delete(0, tk.END)
self.guess_ent.delete(0, tk.END)
# ... more stuff to be reset here
我没有对此进行测试,从未完成tkinter
(至少据我记得),但我只是阅读了documentation! ; - )
.delete(first,last = None) 删除窗口小部件中的字符,从索引优先的字符开始,最后但不包括最后位置的字符。如果省略第二个参数,则仅删除第一个位置的单个字符。
和
窗口小部件显示的文本中的位置作为索引给出。有几种方法可以指定索引:
- 作为普通的Python索引,从0开始。
- 常量tk.END是指现有文本之后的位置。
哦,我觉得有必要补充一点,永远不会使用全局变量。使用它们没有充分的理由或情况。除非你想制作一个难以阅读和维护的丑陋代码。
您应该将这些全局变量作为成员推送到类中。
答案 1 :(得分:0)
number
,tries
)。# coding: utf-8
from Tkinter import *
import random
class Application(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.grid()
self.create_widgets()
self.reset()
def create_widgets(self):
self.inst_lbl = Label(self, text = "Följ alla stegen")
self.inst_lbl.grid(row=0, column=0, columnspan=2, sticky=W)
self.name_lbl = Label(self, text="Spelarens namn: ")
self.name_lbl.grid(row=1, column=0, sticky=W)
self.name_ent = Entry(self)
self.name_ent.grid(row=1, column=1, sticky=W)
self.guess_lbl = Label(self, text="Skriv in din gissning.")
self.guess_lbl.grid(row=2, column=0, sticky=W)
self.guess_ent = Entry(self)
self.guess_ent.grid(row=2, column=1, sticky=W)
self.reset_bttn = Button(self, text="Starta om", command=self.reset)
self.reset_bttn.grid(row=6, column=1, sticky=W)
def reset(self):
self.number = random.randint(1, 100)
self.tries = 0
self.name_ent.delete(0, END)
self.guess_ent.delete(0, END)
root = Tk()
Application(root)
root.mainloop()