Python Tkinter:使用按钮稳定对象
我正在玩弄Python 3.3中的Python Tkinter:使用按钮稳定对象,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在玩弄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 s
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\u 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
如果要保存标签
反对,应使用以下表格:
hello_lbl = Label(root, text="")
hello_lbl.grid(row=4, columnspan=2)
使用全局变量时是否有任何危险/顾虑?@IanAuld,任何函数都可以更改
person
全局变量。此外,如果多次单击“确认”按钮,则只保留最后一个人;任何可能由全局变量引起的问题都可能发生在这里。(我使用全局变量来简化答案代码。)