文章目录
说明
- tkinter为python自带的内置库,不需要安装。适合开发小工具等。大型应用建议pyqt5.
import tkinker as tk
tk._test() # 测试tkinter是否正常,导入,使用,查看版本等
Demo
创建一个窗口
import tkinter as tk
# 实例tk对象
root = tk.Tk()
# 设置窗口标题
root.title('Hello World!')
# root.wm_title('Hello World')
# 事件循环
root.mainloop()
标签–Label
from tkinter import *
root = Tk()
root.title('Hello World!')
# 绑定标签和root,text==提示信息
wl = Label(root, text='第一个标签:')
# 布局方式pack(),自动布局,常用
wl.pack()
root.mainloop()
组件与按钮
tkinter中,有21个常用的核心组件,他们提供了最基本的功能,使用频率较高。
Toplevel、Label、Button、Canvas、Checkbutton、Entry、Frame、LabelFrame、Listbox、Menu、Menubuttonn、Message、OptionnMenu、PaneWindow、Radiobutton、Scale、Scrollbar、Text、Bitmap、Image
使用
绑定方式通常有:
- 在按钮组件被声明的时候用command属性声明,command属性接受一个函数名
from tkinter import *
root = Tk()
i = 0
def my_label():
global root, i
s = Label(root, text=f'在窗口中点了{i}次')
s.pack()
i += 1
b = Button(root, text='点点点', command=my_label)
b.pack()
root.mainloop()
- 使用bind方法,常用,可以绑定多个事件
from tkinter import *
root = Tk()
i = 0
def my_label(event): # event表示接受的事件
global root, i
s = Label(root, text=f'在窗口中点了{i}次')
s.pack()
i += 1
b = Button(root, text='点点点')
# "<Button-1>"表示鼠标左键点击一次
b.bind("<Button-1>", my_label)
b.pack()
root.mainloop()
设置属性
from tkinter import *
root = Tk()
i = 0
b1 = Button(root, text='按钮1')
b1['width'] = 20
b1['height'] = 4
b1.pack()
b2 = Button(root, text='按钮2')
b2['width'] = 20
b2['background'] = 'red'
b2.pack()
root.mainloop()
布局
- pack: 简单。不用做太多设置,直接使用pack函数即可
接受的参数
1、side : 参数指定它停靠在那个方向,可以为:LEFT、TOP、RIGHT、BUTTOM(左上右下)
2、fill:参数可以为X、Y、BOTH和NONE,即在水平、垂直方向填充,水平和垂直方向填充和不填充
3、expand:参数可以是YES和NO,它的anchor参数可以是N、E、S、W(北东南西,上右下左)以及他们的组合或者是CENTER(表中间)
4、ipadx: 表示内边距的x方向,它的ipady表示的是内边距的y方向,padx表示的是外边距的x方向,pady表示的是外边距的y方向
from tkinter import *
root = Tk()
Button(root, text='A').pack(side=LEFT, expand=YES