我需要通过在Tkinter中触发Button小部件来创建一个类实例

时间:2017-08-17 04:05:43

标签: python oop tkinter

我现在可以将类实例化,但我无法引用创建的对象。

此按钮调用一个以变量作为参数的函数。

self.gencharbutton = Button(self.topleftframe, text='8: Generate Character!', command=lambda: self.createcharacterobject(self.racevar.get()))

如果我要在脚本中创建这个对象,我会做这样的事情:

character = self.createcharacterobject(self.racevar.get()))

然后我可以像这样引用对象及其属性:

character.name 

character.height

鉴于我不能在Button中放置赋值语句,我该如何引用该对象?

对不起,但我仍然掌握着OOP,所以答案可能对其他人来说相当明显。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

我知道这是一个很老的问题,但这是我在类似案例中所做的(尽管像我1个月前刚开始上下班的时候就开始学习编程和python)

from tkinter import *

class Character:
    def __init__(self,race):
        self.race=race

def createCharacter():
    charname=field1.get()
    chlst.insert(0,charname)
    text=("global "+chlst[0]+"\n"+chlst[0]+"=Character('"+racevar.get()+"')")
    exec(text)

chlst=[]
root=Tk()
field1=Entry(root)
field1.pack()
racevar=Entry(root)
racevar.pack()
butt1=Button(root,text="Create",command=createCharacter)
butt1.pack()
root.mainloop()

因此,基本上,我从条目小部件中获取名称并将其存储在列表中,以便以后在需要时可以获取它。 我很想念的一件事是在稍后执行的文本中声明"global "+chlst[0]+"\n"