案例:注册信息收集
参考代码
python
import tkinter as tk
root = tk.Tk()
root.geometry('350x300+500+500')
username_str_var = tk.StringVar()
password_str_var = tk.StringVar()
password_str_var_2 = tk.StringVar()
# 0 女 1 男 -1 保密
gender_str_var = tk.IntVar()
# 兴趣爱好
hobby_list = [
[tk.IntVar(), '吃'],
[tk.IntVar(), '喝'],
[tk.IntVar(), '玩'],
[tk.IntVar(), '乐'],
]
# 账户信息
label_username = tk.Label(root, text='用户名:')
entry_username = tk.Entry(root, textvariable=username_str_var)
label_password = tk.Label(root, text='密 码:')
entry_password = tk.Entry(root, textvariable=password_str_var)
label_password_2 = tk.Label(root, text='确认密码:')
entry_password_2 = tk.Entry(root, textvariable=password_str_var_2)
tk.Label(root, width=10).grid()
label_username.grid(row=1, column=1, sticky=tk.W)
entry_username.grid(row=1, column=2, sticky=tk.W)
label_password.grid(row=2, column=1, sticky=tk.W)
entry_password.grid(row=2, column=2, sticky=tk.W)
label_password_2.grid(row=3, column=1, sticky=tk.W)
entry_password_2.grid(row=3, column=2, sticky=tk.W)
# 性别 单选框
label_gender = tk.Label(root, text='性别:')
label_gender.grid(row=4, column=1, sticky=tk.W)
tk.Radiobutton(root, text='男', variable=gender_str_var, value=1).grid(row=5, column=1, sticky=tk.W)
tk.Radiobutton(root, text='女', variable=gender_str_var, value=0).grid(row=5, column=2, sticky=tk.W)
tk.Radiobutton(root, text='保密', variable=gender_str_var, value=-1).grid(row=4, column=2, sticky=tk.W)
# 兴趣爱好
label_hobby = tk.Label(root, text='兴趣爱好:')
label_hobby.grid(row=6, column=1, sticky=tk.W)
tk.Checkbutton(root, text=hobby_list[0][1], variable=hobby_list[0][0]).grid(row=7, column=1, sticky=tk.W)
tk.Checkbutton(root, text=hobby_list[1][1], variable=hobby_list[1][0]).grid(row=7, column=2, sticky=tk.W)
tk.Checkbutton(root, text=hobby_list[2][1], variable=hobby_list[2][0]).grid(row=8, column=1, sticky=tk.W)
tk.Checkbutton(root, text=hobby_list[3][1], variable=hobby_list[3][0]).grid(row=8, column=2, sticky=tk.W)
tk.Label(root, text="").grid(row=9, column=2, sticky=tk.W)
button = tk.Button(root, text='提交', width=20)
button.grid(row=10, column=2, sticky=tk.W)
def get_info():
data = {
'username': username_str_var.get(),
'password': password_str_var.get(),
'gender': gender_str_var.get(),
'hobby': [h for v, h in hobby_list if v.get()]
}
print(data)
button.config(command=get_info)
root.mainloop()