随机TKinter Dice Roller

时间:2016-10-31 21:39:29

标签: python tkinter dice

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

我在使用Tkinter时遇到了我的python代码问题。我试图让它制作一个带有三个按钮的窗口,这些按钮显示骰子上滚动的数字,另一个可以让我重新掷骰子。

1 个答案:

答案 0 :(得分:0)

方法diceRoller下的类rolldice内的代码必须采用某种方法。它不能只是留在课堂上。使用def创建方法并将该代码添加到其中。

如果方法的名称是__init__,则称为构造函数。构造函数是在创建对象时(即执行diceRoller()时)将调用的方法。您可能应该将现在只是放在diceRoller内的代码放入这样的方法/构造函数中,我不知道(您应该知道是否属于这种情况)。< / p>

注意:在Python中,我们通常会写出类名大写的第一个字符。