Tkinter模块是python比较常用的GUI界面设计模块,首先对相关的函数进行分析。
一 、创建根窗口相关的函数说明
import tkinter as tk
top = tk.Tk() # 创建一个根窗口 top.title("窗口的标题") # 设置该窗口的标题 top.geometry("500x500+500+100") # 设置窗口的尺寸,500x500+500+100=width*hight+x+y # width=True|False宽可变|不可变;height=True|False高可变|不可变 top.resizable(width=False, height=False) top.maxsize(width=500, height=500) # 设置窗口的最大尺寸为500*500像素 top.minsize(width=500, height=500) # 设置窗口的最小尺寸为500*500像素 top.mainloop() # 窗口运行
二、按钮Button相关的函数及参数说明
# 创建一个按钮,参数top指的是在哪个窗口,text指按钮上显示的文字,command指按键按下后调用的函数, # 这里的指无参函数,bg设置按钮背景颜色,fg设置按钮文字颜色,font设置文字字体、大小、属性 # width和height手动设置按钮的宽高,不设置则自动大小 button1 = tk.Button(top, text="按钮", # 按钮标签 command=function1, # 点击按钮回调函数 bg="black", fg="white", # 背景色和前景色 font=("宋体", 16, "bold"), # 字体 width=30, height=30) # 按钮的宽和高 # 创建一个按钮,如果按钮的响应函数需要传参的话,用一个匿名函数,如下: button2 = tk.Button(top, text="按钮", command=lambda :function(x,y)) # 手动设置按钮显示位置,x,y指按钮显示在窗口中的坐标 button1.place(x=250, y=200) # 自动设置按钮的显示位置,side有TOP,BOTTOM,LEFT,RIGHT上下左右四个选项,fill表示是否自动延伸 # 到窗口边缘,有X,Y,BOTH3个选项,默认为None button2.pack(side=tk.TOP, fill=tk.X)
三、游标Scale相关的函数及参数说明
var = tk.StringVar(top) # 创建一个字符串变量对象 var.set("字符串") # 设置变量的值,默认为None var.get() # 获取变量的值 var1 = tk.IntVar() # 创建一个整形变量 scale1 = tk.Scale(top, orient=tk.HORIZONTAL, # 设置游标显示的方向,HORIZONTAL为水平方向, # VERTICAL为竖直方向 label="标签", # 设置游标的标签 fg="green", # 设置游标的值的颜色 background="red", # 设置整个游标背景的颜色 activebackground="yellow", # 当鼠标放到游标上时,游标显示为黄色 font=("宋体", 16, "bold"), # 设置标签和值的字体 length=100, # 设置游标整个的长度 resolution=2, # 设置游标移动的步长 from_=-200, # 设置游标的最小值 to=200, # 设置游标的最大值 variable=var, # 绑定变量 command=function, # 回调函数,游标每移动一个步长调用一次回调函数 # 会自动将游标的值作为参数传入function digits=8, # 游标的值以8为小数显示 ) scale1.set(50) # 设置游标的值 scale1.get() # 获取游标的值 scale1.pack()
四、Frame:窗口上一块区域,通常用来作为容器对窗口进行布局,相关的函数及参数说明
# 注意,Frame不需要传入top参数,直接可创建 tk.Frame(width=100, # 指定区域的宽 height=100, # 指定高 bg="green" # 指定区域颜色 ).pack(fill=tk.X)
五、Canvas:画布,可以在上面绘图
# 创建一块画布 cans = tk.Canvas(top, # 根窗口 bg="white", # 设置画布的颜色为白色 ) # 绘制一个矩形 rc = cans.create_rectangle(50, 50, 100, 100, # 矩形的对角坐标x1,y1,x2,y2 fill="red", # 矩形内的填充颜色 outline="green", # 矩形边框的颜色 width=5, # 矩形边框的宽度,5个像素 dash=10, # 边框为虚线,值为任意一个整数 stipple="gray12", # 使用画刷填充矩形 tags=("rc1","rc2") # 指定多个矩形,rc1和rc2都是rc的复制对象 ) # 绘制弧形,矩形的参数用法基本和弧形相同 cans.create_arc((0, 0, 100, 100), # x1,y1,x2,y2指弧形外切矩形的对角坐标 style=tk.ARC, # ARC指绘制弧形,PIESLICE指绘制扇形,CHORD绘制弓星,默认扇形 start=0, # 指定角度,从0度开始 extent=180, # 沿着逆时针方向绘制180度 ) # 绘制位图 image = tk.PhotoImage(file="filepath") # 打开文件生成一个图片对象,格式为gif cans.create_image((100,100),image) # 图片的坐标,图片对象 # 将矩形rc1绑定事件function,当鼠标点击到矩形的任何位置时触发pxx事件, # 有一个参数rc1会传递到pxx,<Button-1>指鼠标左键控制, # <Button-2>滚轮控制,<Button-3>鼠标右键控制 cans.tag_bind("rc1", "<Button-1>", function) cans.coords(rc, (50,50,300,300)) # 修改矩形的坐标 cans.move(rc, 50, 50) # 将rc对象相对原来的位置向右移动50,向下移动50 cans.delete(rc) # 在画布上删除对象rc cans.scale(rc, 0, 0, 2, 2) # 将x轴,y轴坐标放大为原来的两倍 cans.pack()
六、文字标签Lable:用来显示界面上的一些文字,如标题、姓名等;
lable1 = tk.Label(top, bg="#00F000", # 背景色 textvariable=tk.StringVar(), # 标签上显示的字符可变 wraplength=400, # 文字显示区域的长度,单位为像素 justify="left", # 文字的对齐方式,有left,right等 fg="blue", # 文字的颜色 font=("宋体", 20, "bold"), # 字体 height=4) # 字的高