tkinter基本情况
tkinter是python的内置模块,可以用来写GUI 程序
窗口操作
01-创建一个空白窗口
导入tkinter模块的所有方法
from tkinter import *
# 创建一个根窗口
win=Tk()
# 进入事件循环
win.mainloop()
02-设置窗口的标题
# 导入tkinter模块的所有方法
from tkinter import *
# 创建一个根窗口
win=Tk()
# 设置窗口标题
win.title('设置窗口属性')
win.mainloop()
03-设置窗口样式
from tkinter import *
# 创建根窗口
win=Tk()
# 创建窗口标题
win.title('设置窗口样式')
# 设置窗口大小
win.geometry('400x300')
# 设置窗口的背景颜色
win.config(bg='yellow')
# 设置窗口的最大值
win.maxsize(500,500)
couple="\n\n上联:足不出户一台电脑打天下\n\n下联:窝宅在家一双巧手定乾坤"
# 在窗口中添加文字
txt=Label(win,text=couple,bg='yellow').pack()
win.mainloop()
04-设置窗口位置
from tkinter import *
# 设置根窗口
win=Tk()
# 设置标题
win.title('设置窗口位置')
# 设置窗口大小和位置
win.geometry('300x200+10+20')
# 进入事件循环
win.mainloop()
05-设置窗口的大小和位置
from tkinter import *
# 创建根窗口
win=Tk()
# 创建标题
win.title('设置窗口的大小和位置')
win.config(bg='yellow')
winw=300
winh=220
# 获取屏幕的宽度
scrw=win.winfo_screenwidth()
# 获取屏幕的高度
scrh=win.winfo_screenheight()
# 计算窗口水平位置
x=(scrw-winw)/2
# 计算窗口垂直位置
y=(scrh-winh)/2
# 设置窗口的大小和位置
win.geometry('%dx%d+%d+%d'%(winw,winh,x,y))
str="窗前明月光,疑是地上霜"
txt=Label(win,text=str,bg='yellow').pack()
win.mainloop()
06-窗口的其他属性
from tkinter import *
# 创建根目录
win=Tk()
win.title('窗口的其他属性')
# 设置窗口是否可以修改,第一个便是是否可以更改宽度,第二个是否可以更改高度
win.resizable(True,True)
# 窗口最小化
# win.iconify()
# win.state('normal')
# 设置窗口默认图标
win.iconbitmap()
win.mainloop()
07-指定和大小
from tkinter import *
# 创建根窗口
win=Tk()
# 设置窗口标题
win.title("指定窗口大小和文字样式")
# 设置窗口大小
win.geometry('300x200')
# 添加标签,设置组件的宽度和高度
Label(win,text='窗前明月光',foreground='white',background='yellow',width=20,height=3).pack()
# 进入事件循环
win.mainloop()
08-文字在组件中的位置
from tkinter import *
# 创建根窗口
win=Tk()
# 设置窗口标题
win.title('文字在组件的位置')
# 设置窗口的大小
win.geometry('400x300')
txt="窗前明月光"
#nw表示西北
Label(win,text=txt,fg='white',bg='yellow',anchor='nw',width=20,height=3).pack()
# 进入事件循环
win.mainloop()
09组件之间的间距
# 导入tkinter模块的方法
from tkinter import *
# 创建根窗口
win=Tk()
txt="小桥流水人家"
# 设置标题
win.title('组件之间的间距')
# 放置标签到窗口
Label(win,text=txt,fg='white',bg='yellow',padx=20,pady=10).pack()
win.mainloop()
10-设置文字属性
# 导入tkinter模块的所有方法
from tkinter import *
# 创建根窗口
win=Tk()
txt="小桥流水人家"
Label(win,text=txt,fg='white',bg='yellow',font='黑体 16 bold').pack()
# 创建事件循环
win.mainloop()
11-设置组件的边框
# 导入tkinter的所有模块
from tkinter import *
# 创建根窗口
win=Tk()
# 创建label,cursor鼠标放在上面的方式,spider表示形状为蜘蛛,组件的边框relief
Label(win,fg='white',bg='yellow',relief='groove',cursor="spider",width="30",height=2).pack(padx=5,pady=5,side=LEFT)
# 创建事件循环
win.mainloop()
12-一个充值小案例
# 导入tkinter模块的所有方法
from tkinter import *
# 创建根窗口
window=Tk()
# 设置窗口标题
window.title('充值成功')
# 设置窗口大小
window.geometry('300x500')
txt="\n\n1、一级VIP30天\n\n2、每天额外赠送300金币7天\n\n3、全英雄限免30天"
# 创建标签1
Label(window,text='充值成功\n',font='黑体 18 bold').pack()
# 创建标签2
Label(window,text="恭喜获取\n",font="黑体 16 bold").pack(anchor=W,padx=45)
# 创建标签3
Label(window,text=txt,font="18",fg="red",justify='left').pack()
# 进入事件循环
window.mainloop()
布局操作
布局从左到右
# 导入tkinter模块的所有方法
from tkinter import *
# 创建根窗口
window=Tk()
txt1="春天"
txt2="夏天"
txt3="秋天"
# 设置排列方式,从左往右
Label(window,text=txt1,bg='yellow').pack(side='left')
Label(window,text=txt2,bg='red').pack(side='left')
Label(window,text=txt3,bg='green').pack(side='left')
window.mainloop()
布局从上到下
# 导入tkinter模块的所有方法
from tkinter import *
# 创建根窗口
window=Tk()
txt1="春天"
txt2="夏天"
txt3="秋天"
# 设置窗口大小
window.geometry('500x500')
Label(window,text=txt1,bg='yellow').pack(side='bottom')
Label(window,text=txt2,bg='green').pack(side='bottom')
Label(window,text=txt3,bg='blue').pack(side='bottom')
# 进入事件循环
window.mainloop()
组件从上到下添加间距
# 导入tkinter模块的所有方法
from tkinter import *
# 创建根窗口
window=Tk()
window.geometry('500x500')
# 设置标题
window.title("布局管理从下到上间距")
Label(window,text="春天",bg='red').pack(side='bottom',padx=20,pady=5)
Label(window,text="夏天",bg='yellow').pack(side='bottom',padx=20,pady=5)
Label(window,text='秋天',bg='green').pack(side='bottom',padx=20,pady=5)
window.mainloop()
组件距离边界的距离
# 导入tkinter模块的所有方法
from tkinter import *
# 创建根窗口
window=Tk()
# 设置标题
window.title('布局管理边距距离组件的距离')
# 设置窗口的大小
window.geometry('500x500')
Label(window,text='春天',bg='green').pack(side='bottom',padx=20,pady=5,ipadx=10,ipady=5)
Label(window,text='夏天',bg='red').pack(side='bottom',padx=20,pady=5,ipadx=10,ipady=5)
Label(window,text='秋天',bg='yellow').pack(side='bottom',padx=20,pady=5,ipadx=10,ipady=5)
# 进入事件循环
window.mainloop()
组件填充分配方式
# 导入tkinter的所有方法
from tkinter import *
# 创建根窗口
window=Tk()
window.geometry('500x500')
# 设置窗口的大小,fill组件填充,y表示垂直方向填充,x表示水平,both水平垂直都填充,none表示不填充
Label(window,text='春天',bg='green').pack(side='left',fill='y')
# 进入事件循环
window.mainloop()
模拟退出对话框
# 导入tkinteer模块的所有方法
from tkinter import *
# 创建根窗口
window=Tk()
# 设置窗口大小
window.geometry('500x500')
Label(window,text='确定退出本窗口吗').pack(fill='x',pady=20)
Label(window,text='确认',bg='green').pack(side='right',anchor='se',padx=20,pady=20,ipadx=10)
Label(window,text='取消',bg='yellow').pack(side='right',anchor='se',padx=20,pady=20,ipadx=10)
# 进入事件循环
window.mainloop()
网格布局Grid
# 导入tkinter的所有方法
from tkinter import *
# 创建根窗口
window=Tk()
# 设置标题
window.title('网格布局grid')
# 设置窗口的大小
window.geometry('500x500')
Label(window,text='春天',bg='green').grid(row=0,column=1,padx=20)
Label(window,text='夏天',bg='red').grid(row=1,column=2,padx=20)
# 进入事件循环
window.mainloop()