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

问题描述 投票:0回答:1

我现在可以很好地实例化该类,但是我无法引用创建的对象。

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

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有所了解,因此答案对于其他人来说可能很明显。谢谢您的时间。

python oop tkinter
1个回答
0
投票

我知道这是一个很老的问题,但这是我在类似案例中所做的(尽管像我一个月前刚开始上下班的时候就开始学习编程和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"

© www.soinside.com 2019 - 2024. All rights reserved.