wordpress 数据库字段,seo官网,优化关键词排名,继续网站建设Tkinter 是 Python 标准库中的一个模块#xff0c;用于创建图形用户界面 (GUI)。它是 Python 中最常用的 GUI 库之一#xff0c;因为它集成在 Python 的标准发行版中#xff0c;无需额外安装即可使用。 一、基本用法
1. 简单示例
import tkinter as tk# 创建主窗口
root … Tkinter 是 Python 标准库中的一个模块用于创建图形用户界面 (GUI)。它是 Python 中最常用的 GUI 库之一因为它集成在 Python 的标准发行版中无需额外安装即可使用。 一、基本用法
1. 简单示例
import tkinter as tk# 创建主窗口
root tk.Tk()
root.title(Hello Tkinter)# 创建标签并添加到主窗口
label tk.Label(root, textHello, World!)
label.pack()# 运行主循环
root.mainloop()2. 基本构成
二、组件用法
在 Python 的 tkinter 中有 21 个核⼼组件它们提供 了最基本的功能这 21 个核⼼组件是 : Toplevel、Label、Button、Canvas、Checkbutton、Entry、Frame、LabelFrame、 Listbox、Menu、Menubutton、Message、OptionMenu、PaneWindow 、 Radiobutton 、 Scale 、Scrollbar 、Spinbox 、Text、Bitmap、Image
1. 窗口
import tkinter as tkroot tk.Tk()
root.title(Main Window) # 设置窗口标题
root.geometry(400x300) # 设置窗口大小
root.iconbitmap(ico.ico) # 窗口图标
root.mainloop()窗口的常用属性如下
title窗口标题geometry 窗口大小设置iconbitmap窗口图标
2. 标签
标签可以说是最简单的窗⼝组件了它不需要执⾏任何功能只是⽤来显示信息。
label Label(root, text 欢迎来到tkinter)
label.pack()3. 按钮
3.1 添加按钮
# 方式一
b1 Button(root, text Python, command myLabel)
b1.pack()# 方式二
b2 Button(root, text Python) # command myLabel ⽊有了
b2.bind(Button-1, myLabel) # 多了这⼀句3.2 设置属性
button[width] 20 # 设置宽度
button[height] 4 # 设置高度
button[background] white # 设置背景色4. 输入框
输入框的类名为Entry如果需要密码框则设置属性 show 为 * 即可。
# ⽤户名
a_label Label(root, text ⽤户名)
a_label.grid(row 0, column 0, sticky W)
a_entry Entry(root)
a_entry.grid(row 0, column 1, sticky E)
# 密码
p_label Label(root, text 密码)
p_label.grid(row 1, column 0, sticky W)
p_entry Entry(root)
p_entry[show] * # 密码显示为 *
p_entry.grid(row 1, column 1, sticky E)print(f用户名为{a_label.get()})5. 文本域
text Text(root, width 50, height 30)
text.pack()6. 列表框
listbox tk.Listbox(root)
listbox.insert(1, Option 1)
listbox.insert(2, Option 2)
listbox.pack()# 获取选中项
selected listbox.get(listbox.curselection())7. 复选框
var tk.IntVar()
checkbutton tk.Checkbutton(root, textCheck Me, variablevar)
checkbutton.pack()# 获取状态
status var.get() # 1 if checked, otherwise 08. 单选按钮
var tk.StringVar(valueOption 1)
radiobutton1 tk.Radiobutton(root, textOption 1, variablevar, valueOption 1)
radiobutton2 tk.Radiobutton(root, textOption 2, variablevar, valueOption 2)
radiobutton1.pack()
radiobutton2.pack()# 获取选中项
selected var.get()9. 滑块
用于从范围中选择一个值。
scale tk.Scale(root, from_0, to100, orienttk.HORIZONTAL)
scale.pack()# 获取当前值
value scale.get()10. 滚动条
用于为其他小部件如 Text、Listbox提供滚动功能。
scrollbar tk.Scrollbar(root)
scrollbar.pack(sidetk.RIGHT, filltk.Y)text_with_scroll tk.Text(root, yscrollcommandscrollbar.set)
text_with_scroll.pack(sidetk.LEFT)
scrollbar.config(commandtext_with_scroll.yview)11. 菜单
menu tk.Menu(root)
root.config(menumenu)file_menu tk.Menu(menu)
menu.add_cascade(labelFile, menufile_menu)
file_menu.add_command(labelNew)
file_menu.add_command(labelOpen)
file_menu.add_separator()
file_menu.add_command(labelExit, commandroot.quit)12. 消息
用于显示多行不可编辑的文本自动换行。
message tk.Message(root, textThis is a message widget, width200)
message.pack()13. 画布
用于绘制图形、线条、矩形、椭圆等
canvas tk.Canvas(root, width200, height100)
canvas.pack()# 绘制矩形
canvas.create_rectangle(50, 20, 150, 80, fillblue)# 绘制椭圆
canvas.create_oval(50, 20, 150, 80, fillred)14. 进度条
progress ttk.Progressbar(root, orienttk.HORIZONTAL, length200, modedeterminate)
progress.pack()
progress.start(10) # 开始进度条三、布局管理
tkinter的布局分为三种
pack 布局它⾮常简单我们不⽤做过多的设置直接使⽤⼀个 pack 函数就可以grid 布局grid 可以理解为⽹格或表格它可以把界⾯设置为⼏⾏⼏列的⽹格相对位置不改变place 布局使⽤固定的位置坐标来布局
1. pack 布局
使⽤ pack 函数的时候默认先使⽤的放到上⾯然后依次向下排它会给我们的组件⼀个⾃认为合适的位置和⼤⼩。 pack 函数也可以接受⼏个参数
side 参数指定了它停 靠在哪个⽅向可以为 LEFTTOPRIGHTBOTTOM分别代表 左上右下fill 参数可以是 XYBOTH 和 NONE即在⽔平⽅向填充竖直⽅向填充⽔平和竖直⽅向填充和不填充。expand 参数可以是 YES 和 NO它的 anchor 参数可 以是 NESW(这⾥的 NESW 分别表示北东南⻄这⾥分别 表示上右下左)以及他们的组合或者是CENTER(表示中间)。ipadx、ipady内边距的x方向和y方向padx、pady外边距的x方向和y方向
2. grid 布局
使⽤ grid 布局的时候,我们使⽤ grid 函数,在⾥⾯指 定两个参数,⽤ row 表示⾏,⽤ column 表示列注意的是 row 和 column 的编号都从 0 开始。支持以下参数
row所在行column所在列sticky它可以⽤ N,S,W,E 表示 上,下,左,右 , 它决定了这个组件是从哪个⽅向开始的。ipadx、ipady内边距的x方向和y方向padx、pady外边距的x方向和y方向rowspan表示跨越的行数columnspan表示跨越的列数
from tkinter import *
py Tk()
Label(py, text 账号).grid(row 0, sticky W)
Entry(py).grid(row 0, column 1, sticky E)
Label(py, text 密码).grid(row 1, sticky W)
Entry(py).grid(row 1, column 1, sticky E)
Button(py, text 登录).grid(row 2, column 1, sticky E)
py.mainloop()3. place 布局
它使⽤ place 函数,它分为 绝对布局 和 相对布局 绝对布局使⽤ x 和 y 参数,相对布局使⽤ relx,rely, relheight 和 relwidth 参数。
4. 总结
place 不推荐使⽤pack 和 grid 布局更常⽤⼀些如果布局相对简单建议使⽤pack如果布局相对复杂建议使用gridpack 和 grid 不能同时使用
四、事件
我们的很多操作⽐如我们点击了⼀下⿏标这就是⼀个事件⽽操作系统会根据我们的相应的事件产⽣相应的消息操作系统把消息传递给我们的应⽤程序然后我们的应⽤程序根据操作系统传⼊的数据执⾏相应的命令。 事件是我们触发的消息是操作系统根据我们的事件产⽣的我们通常对于“消息”并不多关注我们重视的是 “事件”。
1. 常用事件
Button-1 表示⿏标左键单击Button-2 表示⿏标中键单击Button-3 表示⿏标右键单击KeyPress-A表示 A 键被按下其中的 A 可以换成其他的键位 Control-V表示按下的是 Ctrl 和 V 键V 可以换成其他键位F1表示按下的是 F1 键对于 Fn 系列的改变数字即可
2. 事件绑定
以下代码可实现标签模拟按钮的操作
n Label(py, text 我可不是真Button哟~)
n.bind(Button-1, myLabel)
n.pack()3. bind 函数
bind()第一个参数为事件第二个参数为回调函数名用于绑定指定控件bind_all()它的参数类型和 bind ⼀样它通常⽤于全局的快捷键⽐如 F1 通常 是⽤来打开帮助⽂档bind_class()它接受三个参数 第⼀个参数是类名第⼆个参数是事件类型第三个参数 是相应的操作unbind()解除绑定事件
# 绑定了所有的输⼊框的 CtrlV 表示粘贴
w.bind_class(Entry,Control-V, my_paste)五、常见案例