基于tkinter模块创建GUI程序(python)


前言

  GUI(Graphics User Interface)使用图形用户界面编程,快速实现图形界面和用户的交互。(早期的都是基于控制台的程序,用户通过控制台和程序交互)。使用的模块(库文件):wxPython库和PyQT库文件
  图形界面的是由一个个组件组成的,如图搭积木般拼装在一起,有的可以放其他的组件的组件就是容器


一、Tkinter是什么?

     tkinter(TK interface)是Python的标准GUI库,支持跨平台的GUI程序开发,tkinter适合小型的GUI程序编写,也适合初学者学习GUI编程。

二、使用步骤

1.创建应用程序的主窗口对象(根窗口)

1>.通过类TK的无参构造方法函数
2>.在主窗口中,添加各种可视化组件,如按钮(Button)等等
3>.通过几何布局管理器,管理组件大小和位置
4>.事件绑定(如:单击事件等)

代码如下(示例):

#导入tkinter的库文件
from tkinter import *
from tkinter import messagebox
#创建根窗口
root = Tk()
#添加各种组件(按钮)
btn1 = Button(root)
#设置button的文字
btn1["text"]("请点我")
#设置几何布局
btn1.pack()
#创建事件方法
def click_bt(e):
	messagebox.showinfo("点击事件","点击完成")
	print('点击事件触发')
#组件绑定绑定事件
btn1.bind("<Button-1>",clikc_bt)
#使窗口持续运行
root.mainloop()

2.tkinter根窗口

通过如下方法设置根窗口:

方法介绍
title()设置窗口框体名称
resizable()设置窗口框体可调性
geometry()设置主窗体大小,接收一个"宽x高+水平坐标+竖直坐标"的字符串
quit()退出
update()刷新页面
root = Tk()
#设置窗口标题
root.title('tkinterDemo')
#设置窗口大小和位置
root.geometry("300x400+200+200")

3.组件拼图

常用组件列表:

Tkinte中r类名中文名称介绍
Toplevel顶层容器,为其他组件提供单独容器,类似窗口
Button按钮按钮组件
Canvas画布提供绘图功能,直线,矩形等
Checkbutton复选框提供用户勾选的复选框
Entry单行输入框可进行单行输入
Frame容器组织其他GUI组件
Label标签显示不可编辑文本或图标
LabelFrame容器可添加标题的容器组件
Listbox列表框列出多个选项,看进行选择
Menu菜单菜单组件
Menubutton菜单按钮包含菜单的按钮(下拉式,层叠式等)
OpiontMenu菜单按钮Menubutton子类,可通过按钮打开菜单
Message消息框可显示多行文本,类似标签

4.Label标签

Label标签属性:

width,height宽,高
font指定字体和大小
imageLabel显示图像,仅支持gif格式
fg和bg前景色和背景色
justify多行文字对齐(left/center/right)

布局管理系统

5.pack布局管理器

pack()方法可接收参数,以调整组件的布局属性。pack()方法常用的布局属性如下:

属性说明
expand设置组件的填充方式,True组件进行扩充填充
fill设置组件是否填充额外空间,取值为none、x、y、both
side设置组件的分布式布局,取值为TOP(默认)、BOTTOM、LEFT或RIGHT

6.grid布局管理器

grid布局将父组件分割成一个二维表格,子组件放置在由行/列确定的单元格中,可以跨越多行/列;grid布局中的列宽由列中最宽单元格确定。

属性说明
row表示组件所在行
column表示组件所在列
rowspan表示组件占据的行数

7.place布局管理器

place布局可以将组件放在一个特定位置。分为绝对布局和相对布局,与pack和grid相比place更加灵活。通过组件的place()方法可以实现place布局管理,常用属性:

属性说明
anchor组件其他选项的确切位置
relx,rely相对窗口宽度和高度位置,取值范围[0,1.0]
x,y绝对布局的坐标(px)

事件处理

8.command事件处理

   tkinter中将用户操作称为事件,如点击鼠标,移动鼠标,键盘按下等等
    程序对事件的处理常常在函数或方法中,简单的事件通过command选项绑定,当由事件产生时,相应组件的command选项绑定事件就会被出发

9.bind事件处理

   tkinter提供了更加灵活的事件处理方式:bind绑定事件,此方式通过组件的bind方法实现,格式如下: bind(event,method)

事件类型讲解
Activate组件从未激活到激活触发事件
Button点击鼠标触发事件,detail可指定具体按下哪个键 :Button-1 鼠标左键 / Button-2 鼠标中键/ Button-3 鼠标右键/ Button-4 滚轮上滚/ Button-5 滚轮下滚
ButtonRelease用户释放鼠标按键触发的事件
KeyPress用户按下键盘按键触发的事件
Configure组件尺寸发生变化触发的事件,detail可指定哪个按键
Enter鼠标进入组件触发的事件(不是用户按下Enter键)
Motion鼠标在组件内移动的整个过程都会触发的事件

  事件字符串modifer的取值:

modifier含义
Alt按下Alt键时
Any表示任何类型按钮被按下时
Control当按下Contorol键时
Double连续两个事件被触发时
Shift按下shift时
Triple三个事件被连续触发

  tkinter允许事件绑定在类上,此类的任何一个实例都会触发事件
   如果想要将一个事件绑定在程序所有组件上,调用bind_all()函数

菜单

10.顶级菜单

   顶级菜单是图形窗口中最基础的菜单,此菜单通常包含多个选项,固定于窗口顶部。
   tkinter库中Menu类的Menu()创建顶级菜单对象,使用菜单add_command()方法添加选项,并用窗口组件的menu将菜单添加到窗口

11.下拉菜单

   顶级菜单每个选项可以有子菜单,使用菜单的add_cascade()方法,可以将一个菜单和另一个菜单的选项级联,为菜单选项创建子菜单(下拉菜单)


总结

tkinter是比较基础的python GUI的库文件,便于学习,也可以为以后学习打基础

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值