Skip to content

案例:注册信息收集

image-20231122235111536

参考代码
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()