图形用户界面是指使用图形方式显示用户操作的界面,图形界面和命令行相比。前者无论是在操作上还是视觉上都更容易被用户接受。Tkinter是Tool Kit Interface的缩写,Tkinter程序包是Python3内建的标准模块,它允许用户在不同操作平台下构建图形用户界面。

1.导入Tkinter

与所有内建模块一样,使用前必须先导入这个模块

import tkinter as tk

2.创建主窗口

图形用户界面最外层是一个窗口对象,我们称之为主窗口,创建好主窗口后就可以在其中加入标签、按钮等内部控件。创建主窗口的语法如下:

import tkinter as tk
主窗口名称 = tk.Tk()
# 例如窗口名称为win,创建主窗口的语句如下:
win = tk.Tk()

主窗口的常用方法如下:

方法 说明 实例
geometry(“宽x高”) 设置窗口尺寸(“x”是小写字母x) win.geometry(“300*100”)表示把窗口大小设置为宽度300像素,高度100像素
title(text) 将参数text所指定的文字设置为主窗口标题栏的文字,例如右边的实例会在窗口标题栏显示“窗口标题”的文字 win.title(“窗口标题”)

窗口的大小并不是一定要设置,如果没有提供主窗口大小的信息,就默认以窗口内部的控件来决定窗口的宽与高。另外如果没有设置窗口的标题,就默认为”tk”.

当主窗口设置完成之后,还必须在程序最后调用mainloop()方法,让程序进入循环监听模式来监听用户触发的事件,一直到关闭窗口为止。语法如下:

win.mainloop()

下面列出创建一个主窗口的完整程序

import tkinter as tk
win = tk.Tk()
win.geometry("300x100")
win.title("主窗口")
win.mainloop()

执行此程序即可创建一个标准的主窗口。

3.布局方式

前面创建的窗口是空的窗口,还必须放入与用户交互地控件,这些控件并不能随意放置,必须按照tkinter的布局方式。

tkinter一共有三种布局方式,对应的布局方法是pack、grid以及place。

pack方法

pack方法默认以自伤而下的方式摆放控件,其常用参数如下:

参数 说明
padx 设置水平间距
pady 设置垂直间距
side 设置位置,值有left,right,top,button
expand 左右两端对齐,参数值为0和1,0表示不要分散;1表示平均分配
fill 是否填充,参数值有x,y,both,none,其中x表示填充的宽度,y表示填充的高度

位置和宽度的单位都是像素。下面的实例通过调用pack方法将3个按钮加入窗口中,按钮控件中的width属性是指按钮控件的宽度,而text属性为按钮上的文字

import tkinter as tk
win = tk.Tk()
win.geometry("300x100")
win.title("pack")

btn1 = tk.Button(win,width = 25,text = '按钮1')
btn1.pack()
btn2 = tk.Button(win,width = 25,text ='按钮2')
btn2.pack()
btn3 = tk.Button(win,width = 25,text ='按钮3')
btn3.pack()

win.mainloop()

grid方法

grid方法用于以表格方式摆放控件,常用的参数如下:

参数 说明
column 设置放在哪一列
columnspan 左右栏合并的数量
row 设置放在哪一行
rowspan 上下栏合并的数量
padx 设置水平间距
pady 设置垂直间距
sticky 设置控件排列方式,参数有4种:n,s,e,w即靠上、靠下、靠右、靠左

下面的实例调用grid方法将4个按钮加入窗口

import tkinter as tk
win = tk.Tk()
win.geometry("300x100")
win.title("grid")

btn1 = tk.Button(win,width = 25,text = '按钮1')
btn1.grid(column = 0, row = 0)
btn2 = tk.Button(win,width = 25,text ='按钮2')
btn2.grid(column = 0, row = 1)
btn3 = tk.Button(win,width = 25,text ='按钮3')
btn3.grid(column = 1, row = 0)
btn4 = tk.Button(win,width = 25,text ='按钮4')
btn4.grid(column = 1, row = 1)

win.mainloop()

place方法

place方法是通过控件在窗口的绝对位置与相对位置来指定控件的摆放位置。相对位置的方法是将整个窗口宽度视为1,窗口中间的位置对应的参数是relx是0.5,高度是一样的,以此类推。

参数 说明
x 水平绝对位置
y 垂直绝对位置
relx 相对水平位置,值为0~1
rely 相对垂直位置,值为0~1
anchor 定位基准点,参数值有下列9中。center:正中心 n,s,e,w:上方中间、下方中间、右方中间、左方中间 ne,nw,se,sw:右上角、左上角、右下角、左下角

下面的实例调用place方法将3个按钮加入窗口

import tkinter as tk
win = tk.Tk()
win.geometry('300x100')
win.title('place')

btn1 = tk.Button(win, width=20, text='按钮1')
btn1.place(x=0, y=0)
btn2 = tk.Button(win, width=20, text='按钮2')
btn2.place(relx=0.5, rely=0.5, anchor='center')
btn3 = tk.Button(win, width=20, text='按钮3')
btn3.place(relx=0.5, rely=0.7)
win.mainloop()

其中按钮2与按钮3使用相对位置定位,因此当窗口缩放时,控件位置仍会在相对比例的位置上。

发表评论

电子邮件地址不会被公开。 必填项已用*标注