要求:账号密码输入框,插入图片等
一、代码
from tkinter import *
import tkinter as tkinter
from PIL import Image, ImageTk
app = Tk()
sw = app.winfo_screenwidth()
sh = app.winfo_screenheight()
ww = 610
wh = 400
x = (sw-ww)/2
y = (sh-wh)/2
app.geometry("%dx%d+%d+%d" %(ww,wh,x,y))
#这里加上图片的路径可以添加图片
photo = PhotoImage(file='E:\\Python\\b1.gif')
lbi = Label(app, image = photo)
lbi.grid(row=0, columnspan = 2)
Label(app, text= "账号:").grid(row = 1, column = 0)
Label(app, text= "密码:").grid(row = 2, column = 0)
#tkinter里的string变量用来存储Entry里的textvariable
v1 = StringVar()
v2 = StringVar()
e1 = Entry(app, textvariable = v1)
e2 = Entry(app, textvariable = v2, show = "*")#show里可以是别的符号
e1.grid(row = 1, column = 1)
e2.grid(row = 2, column = 1)
def show():
print("账号:%s"%e1.get())#get是用来获取e1的内容的
print("密码:%s"%e2.get())
def dele():
e1.delete(0,END)
e2.delete(0,END)
theButton1 = Button(app, text = "确认",width = 10,command = show)
theButton2 = Button(app, text = "退出",width = 10,command = app.quit)#app.quit是退出IDLE里冲突不能执行
theButton1.grid(row =3 ,column =0,sticky =W+E, padx=10,pady =5)
theButton2.grid(row =3 ,column =1,sticky =E+W, padx=10,pady =5)
mainloop()
二、代码提示
1. 插入图片代码
photo = PhotoImage(file='E:\\Python\\b1.gif')
lbi = Label(app, image = photo)
lbi.grid(row=0, columnspan = 2)
注意:tkinter支持gif格式,不支持jpg格式。
图片是gif格式的,如果选择的jpg、png格式的图片,可以通过Photoshop改变一下图片格式。
若插入的jpg图片,则出现错误:
_tkinter.TclError: couldn't recognize data in image file "E:\Python\b1.jpg"
2. grid()进行布局管理
grid()使用的主要参数:
(1)
row=x,column=y
:将控件放在x行,y列的位置
如果不指定参数,则默认从0开始;
此处的行号和列号并不是像在坐标轴上一样严格,只是代表一个上下左右的关系
(2)
columnspan
: 设置单元格横向跨越的列数,即控件占据的列数(宽度);
rowspan
:设置单元格纵向跨越的行数,即控件占据的行数(高度)
(3)
ipadx
:设置控件里面水平方向空白区域大小;
ipady
:设置控件里面垂直方向空白区域大小
padx
:设置控件周围水平方向空白区域保留大小;
pady
:设置控件周围垂直方向空白区域保留大小
(4)
sticky:
默认的控件在窗口中的对齐方式是居中
sticky=N/S/E//W:
顶端对齐/底端对齐/右对齐/左对齐
sticky=N+S:
拉伸高度,使其在水平方向上顶端和底端都对齐
sticky=E+W:
拉伸宽度,使其在垂直方向上左边界和右边界都对齐
sticky=N+S+E:
拉伸高度,使其在水平方向上对齐,并将控件放在右边(当两个控件放在同一行同一列时效果明显)
3. 如果需要将输入的文字显示在界面上
v2.set(e1.get())
def show():
print("输入的汉字:%s"%e1.get())
v2.set(e1.get())
同时,设置一个按钮用于触发这个事件
theButton1 = Button(app,text = "显示输入",width = 10,command = show)
三、实现效果