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

文章目录

  • 前言
  • 一、Tkinter是什么?
  • 二、使用步骤
    • 1.创建应用程序的主窗口对象(根窗口)
    • 2.tkinter根窗口
    • 3.组件拼图
    • 4.Label标签
  • 布局管理系统
    • 5.pack布局管理器
    • 6.grid布局管理器
    • 7.place布局管理器
  • 事件处理
    • 8.command事件处理
    • 9.bind事件处理
  • 菜单
    • 10.顶级菜单
    • 11.下拉菜单
  • 总结


前言

  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("",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 指定字体和大小
image Label显示图像,仅支持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的库文件,便于学习,也可以为以后学习打基础

你可能感兴趣的:(python,gui,tkinter)