from tkinter import Tk
import tkinter as tk
my_win = Tk()
my_win.title('登录')
weight = 300
height= 300
scr_wei,scr_hei = my_win.maxsize()
dx = "%dx%d+%d+%d"%(weight,height,(scr_wei-weight)/2,(scr_hei-height)/2)
my_win.geometry(dx)
# 添加标签
username= tk.Label(my_win,text='账号') # Lable 属性就是一个展示字符串的属性
username.place(x=30,y=30)
username_text = tk.StringVar() # StringVar要先到导入 tk包,这个属性是文本框属性
username_text.set('输入名字') # 是文本框默认值
username_entry = tk.Entry(my_win,textvariable = username_text) # 表示输入
username_entry.place(x=60,y=30)
password= tk.Label(my_win,text='密码')
password.place(x=30,y=50)
password_text = tk.StringVar()
password_text.set('输入密码')
password_entry = tk.Entry(my_win,textvariable = password_text)
password_entry.place(x=60,y=50)
my_win.mainloop()
from tkinter import Tk
import tkinter as tk
my_win = Tk()
my_win.title('登录')
weight = 300
height= 300
scr_wei,scr_hei = my_win.maxsize()
dx = "%dx%d+%d+%d"%(weight,height,(scr_wei-weight)/2,(scr_hei-height)/2)
my_win.geometry(dx)
# 用户名
username= tk.Label(my_win,text='账号') # Lable 属性就是一个展示字符串的属性
username.place(x=30,y=30)
username_text = tk.StringVar() # StringVar要先到导入 tk包,这个属性是文本框属性
username_text.set('输入名字') # 是文本框默认值
username_entry = tk.Entry(my_win,textvariable = username_text) # 表示输入
username_entry.place(x=60,y=30)
username_button = tk.Button(my_win,text = '登录按钮')
username_button.place(x = 30,y = 70)
# 密码
password= tk.Label(my_win,text='密码')
password.place(x=30,y=50)
password_text = tk.StringVar()
password_text.set('输入密码')
password_entry = tk.Entry(my_win,textvariable = password_text)
password_entry.place(x=60,y=50)
password_button = tk.Button(my_win,text = '登录按钮')
password_button.place(x = 120,y = 70)
my_win.mainloop()
接下来就是比较重要的事件的触发了,加 command
from tkinter import Tk
import tkinter as tk
def get_data():
dict = {}
with open('data.txt','r+') as f:
rows = f.readlines()
for row in rows:
li = row.strip().split(':')
dict[li[0]]=li[1]
f.close()
return dict
def login():
shuju = get_data()
name = username_text.get()
pwd = password_text.get()
# print(name,pwd)
if name in shuju.keys():
if pwd == shuju[name]:
print('ok')
else:
print('不ok')
else:
print('名字没有')
my_win = Tk()
my_win.title('登录')
weight = 300
height= 300
scr_wei,scr_hei = my_win.maxsize()
dx = "%dx%d+%d+%d"%(weight,height,(scr_wei-weight)/2,(scr_hei-height)/2)
my_win.geometry(dx)
# 用户名
username= tk.Label(my_win,text='账号') # Lable 属性就是一个展示字符串的属性
username.place(x=30,y=30)
username_text = tk.StringVar() # StringVar要先到导入 tk包,这个属性是文本框属性
username_text.set('输入名字') # 是文本框默认值
username_entry = tk.Entry(my_win,textvariable = username_text) # 表示输入
username_entry.place(x=60,y=30)
username_button = tk.Button(my_win,text = '登录按钮',command = login) # command 加上要触发的函数
username_button.place(x = 30,y = 70)
# 密码
password= tk.Label(my_win,text='密码')
password.place(x=30,y=50)
password_text = tk.StringVar()
password_text.set('输入密码')
password_entry = tk.Entry(my_win,textvariable = password_text)
password_entry.place(x=60,y=50)
password_button = tk.Button(my_win,text = '注册按钮')
password_button.place(x = 120,y = 70)
my_win.mainloop()
下面就是弹窗提示了
from tkinter import Tk,messagebox
import tkinter as tk
def get_data():
dict = {}
with open('data.txt','r+') as f:
rows = f.readlines()
for row in rows:
li = row.strip().split(':')
dict[li[0]]=li[1]
f.close()
return dict
def login():
shuju = get_data()
name = username_text.get()
pwd = password_text.get()
# print(name,pwd)
if name in shuju.keys():
if pwd == shuju[name]:
print('ok')
else:
print('不ok')
else:
# print('名字没有')
messagebox.showerror(title='不对的',message='名字没有') # 导messagebox包
# messagebox.showinfo(title='不对的',message='名字没有')
# messagebox.showwarning(title='不对的',message='名字没有')
my_win = Tk()
my_win.title('登录')
weight = 300
height= 300
scr_wei,scr_hei = my_win.maxsize()
dx = "%dx%d+%d+%d"%(weight,height,(scr_wei-weight)/2,(scr_hei-height)/2)
my_win.geometry(dx)
# 用户名
username= tk.Label(my_win,text='账号') # Lable 属性就是一个展示字符串的属性
username.place(x=30,y=30)
username_text = tk.StringVar() # StringVar要先到导入 tk包,这个属性是文本框属性
username_text.set('输入名字') # 是文本框默认值
username_entry = tk.Entry(my_win,textvariable = username_text) # 表示输入
username_entry.place(x=60,y=30)
username_button = tk.Button(my_win,text = '登录按钮',command = login)
username_button.place(x = 30,y = 70)
# 密码
password= tk.Label(my_win,text='密码')
password.place(x=30,y=50)
password_text = tk.StringVar()
password_text.set('输入密码')
password_entry = tk.Entry(my_win,textvariable = password_text)
password_entry.place(x=60,y=50)
password_button = tk.Button(my_win,text = '注册按钮')
password_button.place(x = 120,y = 70)
my_win.mainloop()
下面就是弹窗的嵌套和 grid 布局
from tkinter import Tk,messagebox,Toplevel
import tkinter as tk
def get_data():
dict = {}
with open('data.txt','r+') as f:
rows = f.readlines()
for row in rows:
li = row.strip().split(':')
dict[li[0]]=li[1]
f.close()
return dict
def login():
shuju = get_data()
name = username_text.get()
pwd = password_text.get()
# print(name,pwd)
if name in shuju.keys():
if pwd == shuju[name]:
print('ok')
else:
print('不ok')
else:
# print('名字没有')
messagebox.showerror(title='不对的',message='名字没有') # 导messagebox包
# messagebox.showinfo(title='不对的',message='名字没有')
# messagebox.showwarning(title='不对的',message='名字没有')
def pop_win():
top = Toplevel()
top.title('注册')
top.geometry('250x200')
tk.Label(top,text='账号').grid(row=1,column=0)
name = tk.StringVar()
tk.Entry(top,textvariable=name).grid(row=1,column=2)
# 销毁窗体
top.destroy()
my_win = Tk()
my_win.title('登录')
weight = 300
height= 300
scr_wei,scr_hei = my_win.maxsize()
dx = "%dx%d+%d+%d"%(weight,height,(scr_wei-weight)/2,(scr_hei-height)/2)
my_win.geometry(dx)
# 用户名
username= tk.Label(my_win,text='账号') # Lable 属性就是一个展示字符串的属性
username.place(x=30,y=30)
username_text = tk.StringVar() # StringVar要先到导入 tk包,这个属性是文本框属性
username_text.set('输入名字') # 是文本框默认值
username_entry = tk.Entry(my_win,textvariable = username_text) # 表示输入
username_entry.place(x=60,y=30)
username_button = tk.Button(my_win,text = '登录按钮',command = login)
username_button.place(x = 30,y = 70)
# 密码
password= tk.Label(my_win,text='密码')
password.place(x=30,y=50)
password_text = tk.StringVar()
password_text.set('输入密码')
password_entry = tk.Entry(my_win,textvariable = password_text)
password_entry.place(x=60,y=50)
# 注册
password_button = tk.Button(my_win,text = '注册按钮',command=pop_win)
password_button.place(x = 120,y = 70)
my_win.mainloop()