tkintertools.main#
约 2839 个字 513 行代码 预计阅读时间 53 分钟
文件描述: Main File
外部引用: Image
, ImageTk
, constants
, exceptions
, fractions
, math
, tkinter
, typing
源码位置: tkintertoolsmain.py
Functions - 函数#
01. _get_control_lst#
_get_control_lst Function
Internal
Internal Function: get a list of floating-point numbers generated by a control function
02. askfont#
askfont Function
字体选择对话框,弹出选择字体的默认对话框窗口
bind
: 关联的回调函数,有且仅有一个参数font
initfont
: 初始字体,格式为font
参数默认格式
注意: 由于 tkinter
模块无法直接打开该窗口,所以此处添加了这个函数
03. color#
color Function
按一定比例给出已有 RGB 颜色字符串的渐变 RGB 颜色字符串,或者给出已有 RGB 颜色字符串的对比色
color
: 颜色元组或列表 (初始颜色, 目标颜色),或者一个颜色字符串(此时返回其对比色)proportion
: 改变比例(浮点数,范围为 0 ~ 1),默认值为 1seqlength
: 如果值为 1,则直接返回结果,其余情况返回长度为seqlength
的渐变颜色列表,默认为 1num
: 每一通道的 16 进制位数,默认为 2 位,可选值为 1 ~ 4controller
: 比例值变化的控制器,为元组 (控制函数, 初始值, 终止值),仅当参数seqlength
大于 1 时生效,默认为等差变化
Classes - 类#
01. Animation#
Animation Class
动画
__init__ Method
Special
__init__(
self,
widget,
ms,
*,
controller=None,
translation=None,
fps=60,
start=None,
step=None,
stop=None,
callback=None,
canvas=None,
loop=False
)
widget
: 进行动画的控件ms
: 动画总时长(单位:毫秒)controller
: 控制器,为元组 (控制函数, 起始值, 终止值) 的形式translation
: 移动,x 方向位移,y 方向位移fps
: 每秒帧数start
: 动画开始前执行的函数step
: 动画每一帧结束后执行的函数(包括开始和结束)stop
: 动画结束后执行的函数callback
: 回调函数,每一帧调用一次,传入参数为单帧占比canvas
: 当widget
是画布中的绘制对象时,应指定canvas
loop
: 是否循环播放动画,默认不循环,循环时参数stop
失效
02. BaseWidget#
BaseWidget Class
虚拟画布控件基类
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
width,
height,
radius,
text,
justify,
borderwidth,
font,
image,
tooltip,
color_text,
color_fill,
color_outline
)
标准参数:标准参数是所有控件都有的
canvas
: 父画布容器控件x
: 控件左上角的横坐标y
: 控件左上角的纵坐标width
: 控件的宽度height
: 控件的高度radius
: 控件圆角化半径text
: 控件显示的文本,对于文本控件而言,可以为一个元组:(默认文本, 鼠标触碰文本)justify
: 文本的对齐方式borderwidth
: 外框的宽度font
: 控件的字体设定 (字体, 大小, 样式)image
: 控件的背景(支持 png 类型,大小必须小于控件,否则会溢出控件边框)tooltip
: 提示框color_text
: 控件文本的颜色color_fill
: 控件内部的颜色color_outline
: 控件外框的颜色
特定参数:特定参数只有某些控件类才有
command
: 按钮控件的关联函数show
: 文本控件的显示文本limit
: 文本控件的输入字数限制,为负数时表示没有字数限制read
: 文本控件的只读模式cursor
: 文本控件输入提示符的字符,默认为一竖线mode
: 进度条控件的模式,determinate
为确定模式,indeterminate
为不定模式,默认为前者tick
: 复选框控件的标记符号,默认为一个“对号”
详细说明
- 字体的值为一个包含两个或三个值的元组或者单个的字符串,共三种形式:
- 形式一:
字体名称
- 形式二:
(字体名称, 字体大小)
- 形式三:
(字体名称, 字体大小, 字体样式)
- 形式一:
- 颜色为一个包含三个或四个 RGB 颜色字符串的元组,一般有两种形式:
- 不使用禁用功能时:
(正常颜色, 触碰颜色, 交互颜色)
- 需使用禁用功能时:
(正常颜色, 触碰颜色, 交互颜色, 禁用颜色)
- 特别地,进度条控件的参数
color_fill
为:(底色, 进度条颜色)
- 不使用禁用功能时:
configure Method
修改或查询参数的值
可供修改或查询的参数有: 1. 所有控件: color_text
、color_fill
、color_outline
2. 非文本控件: text
注意:颜色修改不会立即生效,可通过鼠标经过生效,或者调用 state
方法立即刷新状态!
03. Button#
Button(BaseWidget) Class
按钮控件
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
width,
height,
*,
radius=5,
text='',
borderwidth: int = 1,
justify='center',
font=('Microsoft YaHei', -24),
command=None,
image=None,
tooltip=None,
color_text=('#000000', '#000000', '#000000', '#A3A3A3'),
color_fill=('#E1E1E1', '#E5F1FB', '#CCE4F7', '#E0E0E0'),
color_outline=('#C0C0C0', '#288CDB', '#4884B4', '#D0D0D0')
)
04. Canvas#
Canvas(Canvas) Class
画布容器控件
__init__ Method
Special
__init__(
self,
master,
width,
height,
x=None,
y=None,
*,
lock=True,
expand=True,
keep=False,
**kw
)
master
: 父控件width
: 画布宽度height
: 画布高度x
: 画布左上角的横坐标y
: 画布左上角的纵坐标lock
: 画布内控件的功能锁,为False
时功能暂时失效expand
: 画布内控件是否能缩放keep
: 画布比例是否保持不变**kw
: 与tkinter.Canvas
类的参数相同
_zoom Method
Internal
缩放画布及其内部的所有元素
rate_x
: 横向缩放比率,默认值表示自动更新缩放(根据窗口缩放程度)rate_y
: 纵向缩放比率,默认值同上
05. CheckButton#
CheckButton(Button) Class
复选框控件
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
height,
*,
radius=5,
text='',
value=False,
tick='✓',
borderwidth=1,
justify='right',
font=('Microsoft YaHei', -24),
image=None,
tooltip=None,
color_text=('#000000', '#000000', '#000000', '#A3A3A3'),
color_fill=('#E1E1E1', '#E5F1FB', '#CCE4F7', '#E0E0E0'),
color_outline=('#C0C0C0', '#288CDB', '#4884B4', '#D0D0D0')
)
06. Entry#
Entry(TextWidget) Class
输入框控件
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
width,
height,
*,
radius=5,
text='',
show=None,
limit=-1,
cursor='│',
borderwidth=1,
justify='left',
font=('Microsoft YaHei', -24),
image=None,
tooltip=None,
color_text=('#000000', '#000000', '#000000', '#A3A3A3'),
color_fill=('#FFFFFF', '#FFFFFF', '#FFFFFF', '#E0E0E0'),
color_outline=('#C0C0C0', '#414141', '#288CDB', '#D0D0D0')
)
07. Label#
Label(BaseWidget) Class
标签控件
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
width,
height,
*,
radius=5,
text='',
borderwidth=1,
justify='center',
font=('Microsoft YaHei', -24),
image=None,
tooltip=None,
color_text=('#000000', '#000000', '#000000', '#A3A3A3'),
color_fill=('#E1E1E1', '#E5F1FB', '#CCE4F7', '#E0E0E0'),
color_outline=('#C0C0C0', '#288CDB', '#4884B4', '#D0D0D0')
)
08. PhotoImage#
PhotoImage(PhotoImage) Class
图片类
_get_total_frames_with_PIL Method
Internal
通过 PIL 库获取 gif 图片的总帧数
start Method
播放动图,canvas.lock
为 False
时会暂停
canvas
: 播放动画的画布item
: 播放动画的_CanvasItemId
(create_image
方法的返回值)interval
: 每帧动画的间隔时间callback
: 运行时解析的回调函数,传入当前已解析的帧数
09. ProgressBar#
ProgressBar(BaseWidget) Class
进度条控件
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
width,
height,
*,
borderwidth=1,
justify='center',
font=('Microsoft YaHei', -24),
image=None,
tooltip=None,
color_text=('#000000', '#000000', '#000000', '#A3A3A3'),
color_outline=('#C0C0C0', '#414141', '#288CDB', '#D0D0D0'),
color_fill=('#E1E1E1', '#06b025'),
mode='determinate'
)
10. Switch#
Switch(Button) Class
开关控件
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
height=30,
*,
width=60,
radius=inf,
borderwidth=1,
tooltip=None,
color_fill_on=('#288CDB', '#3E98DF', '#4884B4', '#E0E0E0'),
color_fill_off=('#E1E1E1', '#E5F1FB', '#CCE4F7', '#E0E0E0'),
color_outline_on=('#288CDB', '#3E98DF', '#4884B4', '#E0E0E0'),
color_outline_off=('#C0C0C0', '#288CDB', '#4884B4', '#D0D0D0'),
color_fill_slider=('#000000', '#000000', '#000000', '#333333'),
color_outline_slider=('#333333', '#333333', '#333333', '#666666'),
default=False,
on=None,
off=None
)
canvas
: 父画布控件x
: 横坐标y
: 纵坐标height
: 高度,默认为 30 像素width
: 宽度,默认为高度的两倍radius
: 圆角半径,默认为完全圆弧borderwidth
: 边框宽度tooltip
: 提示框color_fill_on
: 内部颜色(状态:开)color_fill_off
: 内部颜色(状态:关)color_outline_on
: 边框颜色(状态:开)color_outline_off
: 边框颜色(状态:关)color_fill_slider
: 滑块内部颜色color_outline_slider
: 滑块边框颜色default
: 默认值,默认为False
on
: 转换到开时触发的回调函数off
: 转换到关时触发的回调函数
11. Text#
Text(TextWidget) Class
文本框控件
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
width,
height,
*,
radius=5,
text='',
limit=-1,
read=False,
cursor='│',
borderwidth=1,
justify='left',
font=('Microsoft YaHei', -24),
image=None,
tooltip=None,
color_text=('#000000', '#000000', '#000000', '#A3A3A3'),
color_fill=('#FFFFFF', '#FFFFFF', '#FFFFFF', '#E0E0E0'),
color_outline=('#C0C0C0', '#414141', '#288CDB', '#D0D0D0')
)
12. TextWidget#
TextWidget(BaseWidget) Class
虚拟文本类控件基类
__init__ Method
Special
13. Tk#
Tk(Tk) Class
根窗口容器控件
__init__ Method
Special
__init__(
self,
title=None,
width=None,
height=None,
x=None,
y=None,
*,
shutdown=None,
alpha=None,
toolwindow=None,
topmost=None,
transparentcolor=None,
**kw
)
title
: 窗口标题width
: 窗口宽度height
: 窗口高度x
: 窗口左上角横坐标y
: 窗口左上角纵坐标shutdown
: 关闭窗口之前执行的函数,但会覆盖原关闭操作alpha
: 窗口的透明度,取值在 0 ~ 1 之间,且 1 为不透明toolwindow
: 窗口是否为工具窗口topmost
: 窗口是否置顶,为布尔值transparentcolor
: 过滤掉该颜色**kw
: 与tkinter.Tk
类的其他参数相同
14. ToolTip#
ToolTip Class
提示框容器控件
__init__ Method
Special
__init__(
self,
text,
*,
font=('Microsoft YaHei', ),
fg='black',
bg='white',
justify='left',
highlightthickness=1,
highlightbackground='grey',
delay=500,
duration=5000
)
text
: 要显示的文本font
: 文本字体fg
: 前景色,默认为黑色bg
: 背景色,默认为淡黄色justify
: 文本对齐方式highlightthickness
: 边框厚度,默认为 1 像素highlightbackground
: 边框颜色,默认为黑色delay
: 延迟时间,超过这个时间后,提示框才会出现,默认为 500 毫秒(必须大于等于零)duration
: 持续时间,达到这个值后,提示框会消失,默认为 5000 毫秒(值为None
表示不会自己消失,需要触发才会消失,但有时候会触发失败……)
15. Toplevel#
Toplevel(Toplevel, Tk) Class
子窗口容器控件
__init__ Method
Special
__init__(
self,
master=None,
title=None,
width=None,
height=None,
x=None,
y=None,
*,
shutdown=None,
alpha=None,
toolwindow=None,
topmost=None,
transparentcolor=None,
**kw
)
master
: 父窗口title
: 窗口标题width
: 窗口宽度height
: 窗口高度x
: 窗口左上角横坐标y
: 窗口左上角纵坐标shutdown
: 关闭窗口之前执行的函数,但会覆盖关闭操作alpha
: 窗口的透明度,取值在 0 ~ 1 之间,且 1 为不透明toolwindow
: 窗口是否为工具窗口topmost
: 窗口是否置顶,为布尔值transparentcolor
: 过滤掉该颜色**kw
: 与tkinter.Toplevel
类的参数相同