gpt4 book ai didi

python - Tkinter:用按钮实例化对象

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:28 25 4
gpt4 key购买 nike

我正在 Python 3.3 中摆弄 tkinter,并且想知道如何使用/创建带有按钮的对象。我有以下代码:

from tkinter import *

class Person:
def __init__(self, name, age, title):
self.name = name
self.age = age
self.title = title

def print_person(self):
return self.name, str(self.age), self.title


def hello(lbl, nm):
lbl.config(text="Hello, " + nm)


root = Tk()
frame = Frame(root)

name_lbl = Label(root, text="Name: ").grid()
name_ent = Entry(root)
name_ent.grid(row=0, column=1)

age_lbl = Label(root, text="Age: ").grid(row=1, column=0)
age_ent = Entry(root)
age_ent.grid(row=1, column=1)

title_lbl = Label(root, text="Title: ").grid(row=2, column=0)
title_ent = Entry(root)
title_ent.grid(row=2, column=1)

hello_lbl = Label(root, text="").grid(row=4, columnspan=2)
btn = Button(root, text="Confirm", command=lambda: Person(name_ent.get(), age_ent.get(), title_ent.get())).grid(row=3, columnspan=2)



root.mainloop()

如何命名通过单击按钮创建的对象以供以后使用?例如,如何在通过填写条目并单击按钮创建的对象上使用 print_person() 方法?

最佳答案

使用变量保存 Person 对象。

例如:

...
def create_a_person():
global person
person = Person(name_ent.get(), age_ent.get(), title_ent.get())

Button(root, text="Confirm", command=create_a_person).grid(row=3, columnspan=2)
Button(root, text="Print", command=lambda: print(person.print_person())).grid(row=4, columnspan=2)
...
<小时/>

顺便说一句,grid 方法返回 None

hello_lbl = Label(root, text="").grid(row=4, columnspan=2) # => None

如果您希望保存Label对象,您应该使用以下形式:

hello_lbl = Label(root, text="")
hello_lbl.grid(row=4, columnspan=2)

关于python - Tkinter:用按钮实例化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20851018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com