随机 TKinter 骰子滚筒
random TKinter Dice Roller
import Tkinter
import random
win = Tkinter.Tk()
win.title('Dice Roller')
def mainloop():
class Die:
def __init__(self,ivalue, parent):
self.value = ivalue
self.display = Tkinter.Label(parent,relief='ridge',borderwidth=4, text=str(self.value))
def roll(self):
self.value = random.randint(1,6)
self.display.config(text=str(self.value))
class diceRoller:
def rolldice():
d1.roll()
d2.roll()
d3.roll()
def __init__(self):
self.diceList = []
self.win = Tkinter.Tk("Dice Roller")
for i in range(3):
di = Die(self.win)
self.dieList.append(di)
rolldice()
row1 = Tkinter.Frame(win)
row2 = Tkinter.Frame(win)
d1.roll.display.pack(side="left")
d2.roll.display.pack(side="left")
d3.roll.display.pack(side="left")
row1.pack()
rolldice = Tkinter.Button(row2, command=rolldice(), text = "Roll")
rolldice.pack()
row2.pack()
win.mainloop()
我的 python 代码与 Tkinter 有问题。我试图让它生成一个 window,其中三个按钮显示骰子上掷出的数字,另一个按钮让我重新掷骰子。
方法 rolldice
下的 class diceRoller
中的代码必须在某种方法中。它不能只停留在 class 中。使用 def
创建方法并将该代码添加到其中。
如果一个方法的名称是__init__
,它被称为构造函数。构造函数是一种将在创建对象时调用的方法(即当您执行 diceRoller()
时)。你也许应该把代码,现在只是放在diceRoller
里面,变成这样一个method/constructor,我不知道(你应该知道是不是这样)。
注意:在Python中我们通常将class个名字的第一个字符写成大写。
import Tkinter
import random
win = Tkinter.Tk()
win.title('Dice Roller')
def mainloop():
class Die:
def __init__(self,ivalue, parent):
self.value = ivalue
self.display = Tkinter.Label(parent,relief='ridge',borderwidth=4, text=str(self.value))
def roll(self):
self.value = random.randint(1,6)
self.display.config(text=str(self.value))
class diceRoller:
def rolldice():
d1.roll()
d2.roll()
d3.roll()
def __init__(self):
self.diceList = []
self.win = Tkinter.Tk("Dice Roller")
for i in range(3):
di = Die(self.win)
self.dieList.append(di)
rolldice()
row1 = Tkinter.Frame(win)
row2 = Tkinter.Frame(win)
d1.roll.display.pack(side="left")
d2.roll.display.pack(side="left")
d3.roll.display.pack(side="left")
row1.pack()
rolldice = Tkinter.Button(row2, command=rolldice(), text = "Roll")
rolldice.pack()
row2.pack()
win.mainloop()
我的 python 代码与 Tkinter 有问题。我试图让它生成一个 window,其中三个按钮显示骰子上掷出的数字,另一个按钮让我重新掷骰子。
方法 rolldice
下的 class diceRoller
中的代码必须在某种方法中。它不能只停留在 class 中。使用 def
创建方法并将该代码添加到其中。
如果一个方法的名称是__init__
,它被称为构造函数。构造函数是一种将在创建对象时调用的方法(即当您执行 diceRoller()
时)。你也许应该把代码,现在只是放在diceRoller
里面,变成这样一个method/constructor,我不知道(你应该知道是不是这样)。
注意:在Python中我们通常将class个名字的第一个字符写成大写。