创建一个窗体,窗体里有以下组件:一个姓名标签,一个空白文本框,一个性别标签,两个单选按钮分别表示男和女,一个爱好标签,三个复选框分别表示体育,唱歌,美术以及一个文本域和一个保存按钮。要求在该窗体设置完信息后按下保存按钮能够将信息打印在文本域里
时间: 2024-03-27 20:41:58 浏览: 40
好的,以下是创建窗体并添加组件的代码,其中包括保存按钮的事件处理程序,可以将信息打印在文本域中:
```python
import tkinter as tk
class MyForm:
def __init__(self, master):
self.master = master
master.title("个人信息")
# 姓名标签和文本框
self.label_name = tk.Label(master, text="姓名:")
self.label_name.grid(row=0, column=0, padx=10, pady=10)
self.entry_name = tk.Entry(master)
self.entry_name.grid(row=0, column=1, padx=10, pady=10)
# 性别标签和单选按钮
self.label_gender = tk.Label(master, text="性别:")
self.label_gender.grid(row=1, column=0, padx=10, pady=10)
self.gender = tk.StringVar()
self.gender.set("男")
self.radio_male = tk.Radiobutton(master, text="男", variable=self.gender, value="男")
self.radio_male.grid(row=1, column=1, padx=10, pady=10)
self.radio_female = tk.Radiobutton(master, text="女", variable=self.gender, value="女")
self.radio_female.grid(row=1, column=2, padx=10, pady=10)
# 爱好标签和复选框
self.label_hobby = tk.Label(master, text="爱好:")
self.label_hobby.grid(row=2, column=0, padx=10, pady=10)
self.hobby_sports = tk.BooleanVar()
self.hobby_sing = tk.BooleanVar()
self.hobby_art = tk.BooleanVar()
self.check_sports = tk.Checkbutton(master, text="体育", variable=self.hobby_sports)
self.check_sports.grid(row=2, column=1, padx=10, pady=10)
self.check_sing = tk.Checkbutton(master, text="唱歌", variable=self.hobby_sing)
self.check_sing.grid(row=2, column=2, padx=10, pady=10)
self.check_art = tk.Checkbutton(master, text="美术", variable=self.hobby_art)
self.check_art.grid(row=2, column=3, padx=10, pady=10)
# 文本域
self.text = tk.Text(master)
self.text.grid(row=3, column=0, columnspan=4, padx=10, pady=10)
# 保存按钮
self.button_save = tk.Button(master, text="保存", command=self.save)
self.button_save.grid(row=4, column=0, columnspan=4, padx=10, pady=10)
def save(self):
name = self.entry_name.get()
gender = self.gender.get()
hobby = ""
if self.hobby_sports.get():
hobby += "体育 "
if self.hobby_sing.get():
hobby += "唱歌 "
if self.hobby_art.get():
hobby += "美术 "
info = "姓名:" + name + "\n性别:" + gender + "\n爱好:" + hobby + "\n"
self.text.insert(tk.END, info)
root = tk.Tk()
myform = MyForm(root)
root.mainloop()
```
运行该程序后,可以看到一个窗体,其中包含姓名标签、空白文本框、性别标签、两个单选按钮、爱好标签、三个复选框、文本域和保存按钮。
在填写完个人信息后,按下保存按钮,信息会以指定格式打印在文本域中。
阅读全文