tkinter 模块的最强辅助模块 —— tkintertools(万字详解)(三)

简介: tkinter 模块的最强辅助模块 —— tkintertools(万字详解)(三)

2、CanvasButton

创建一个虚拟的按钮,并执行关联函数

初始化参数

CanvasButton(canvas: Canvas,
             x: int,
             y: int,
             width: int,
             height: int,
             radius: int = RADIUS,
             text: str = NULL,
             borderwidth: int = BORDERWIDTH,
             justify: str = tkinter.CENTER,
             font: tuple[str, int, str] = FONT,
             command=None,  # type: function | None
             color_text: tuple[str, str, str] = COLOR_TEXT,
             color_fill: tuple[str, str, str] = COLOR_FILL_BUTTON,
             color_outline: tuple[str, str, str] = COLOR_OUTLINE_BUTTON)

默认外观

CanvasLabel 默认外观

详细用法

按钮的操作就比较多了,不仅外观可以改变,也可以像原版的 tkinter 一样执行关联函数(command 参数写法一样)。

CanvasButton 详细用法

实现上面效果的源代码:

import tkintertools
root = tkintertools.Tk('tkinter辅助模块操作说明', '960x540', (960, 540))
canvas = tkintertools.Canvas(root, 960, 540)
canvas.place(x=0, y=0)
background = tkintertools.PhotoImage('background.png')
canvas.create_image(480, 270, image=background)
test = canvas.create_rectangle(200, 200, 250, 250, fill='black', width=0)
callback = lambda: canvas.itemconfigure(test, fill='red' if canvas.itemcget(test, 'fill') == 'black' else 'black')
tkintertools.CanvasButton(canvas, 100, 100, 150, 30, 0, '按钮',
                          command=callback,
                          color_text=('grey', 'black', 'black'),
                          color_fill=('', 'yellow', 'orange'),
                          color_outline=('grey', 'yellow', 'orange'))
root.mainloop()

3、CanvasEntry

创建一个虚拟的输入框控件,可输入单行少量字符,并获取这些字符

初始化参数

CanvasEntry(canvas: Canvas,
            x: int,
            y: int,
            width: int,
            height: int,
            radius: int = RADIUS,
            text: tuple[str] | str = NULL,
            show: str | None = None,
            limit: int = LIMIT,
            space: bool = False,
            cursor: str = CURSOR,
            borderwidth: int = BORDERWIDTH,
            justify: str = tkinter.LEFT,
            font: tuple[str, int, str] = FONT,
            color_text: tuple[str, str, str] = COLOR_TEXT,
            color_fill: tuple[str, str, str] = COLOR_FILL_TEXT,
            color_outline: tuple[str, str, str] = COLOR_OUTLINE_TEXT)

实例方法

① get

get()

获取输入框的输入的值,无参数

② set

set(value: str)

设置输入框的值

value: 要修改的值

③ append

append(value: str)

给输入框添加值

value: 添加的值,用法类比与列表的 append 方法

默认外观


image.gif

CanvasEntry 默认外观

详细用法


这个输入框,功能还算比较完整,可以输入一些允许的文本,有默认值,提示值,以及特殊的显示(如密码显示为黑圆点),可以限制文本输入长度,等等……


但是还有一些功能没有做到,如选中一些输入的文本、快捷键全选(Ctrl+A)、复制等等(粘贴还是做到了),这些我会努力去实现的。


【关于输入框一些属性】

read: 输入框的只读模式的标识


space: 输入框是否能输入空格的标识


icursor: 输入框文本输入提示符的字符


value_surface: 表面的值,一般和 value 一样,但 show 属性有值的时候为若干个 show 的值


value_normal: 一般显示文本,即鼠标未在输入框上面时显示文本


value_touch: 鼠标触碰到的值,即鼠标放在输入框上面但未点下去时显示的文本


show: 输入文本后对外显示的值,与原 tkinter 里 Entry 的 show 参数一样的效果


limit: 文本长度的限制(一般字符长度算 1,中文字符长度算 2 个),为负数时表示无限制

下面就展示一个用法的实例:

CanvasEntry 详细用法

实现上面效果的源代码:

import tkintertools
root = tkintertools.Tk('tkinter辅助模块操作说明', '960x540')
canvas = tkintertools.Canvas(root, 960, 540)
canvas.place(x=0, y=0)
background = tkintertools.PhotoImage('background.png')
canvas.create_image(480, 270, image=background)
tkintertools.CanvasEntry(
    canvas, 380, 370, 200, 25, 0, ('账号', '点击输入'),
    color_fill=tkintertools.COLOR_NONE,  # 内部始终透明
    color_text=('white', 'white', 'white'),
    color_outline=('white', 'springgreen', 'springgreen'))
tkintertools.CanvasEntry(
    canvas, 380, 400, 200, 25, 0, ('密码', '点击输入'), '•',
    color_fill=tkintertools.COLOR_NONE,  # 内部始终透明
    color_text=('white', 'white', 'white'),
    color_outline=('white', 'springgreen', 'springgreen'))
root.mainloop()

4、CanvasText

创建一个透明的虚拟文本框,用于输入多行文本和显示多行文本(只读模式)

初始化参数

CanvasText(canvas: Canvas,
           x: int,
           y: int,
           width: int,
           height: int,
           radius: int = RADIUS,
           text: tuple[str] | str = NULL,
           limit: int = LIMIT,
           space: bool = True,
           read: bool = False,
           cursor: bool = CURSOR,
           borderwidth: int = BORDERWIDTH,
           justify: str = tkinter.LEFT,
           font: tuple[str, int, str] = FONT,
           color_text: tuple[str, str, str] = COLOR_TEXT,
           color_fill: tuple[str, str, str] = COLOR_FILL_TEXT,
           color_outline: tuple[str, str, str] = COLOR_OUTLINE_TEXT)

实例方法

① get

get()

获取文本框中的值,没有参数

② set

set(value: str)

重新设定显示文字

value: 要修改的值

③ append

append(value: str)

给文本框添加一些文本

value: 要添加的文本,用法类比于列表的 append 方法

默认外观

                                           anvasText 默认外观

详细用法

这个文本框呢,功能描述和上面的输入框(CanvasEntry)差不多的,但是还是有一些不同。


比如,文本框里面默认是可以输入空格符号的,而输入框默认不行(可通过 space 参数修改)。


其次,如果这个文本框的 limit 参数设置的比较大,且 read 参数为 True 时,那在超过了文本框显示的范围之后,它会只显示一部分……还有很多特性。

【关于文本框一些属性】

read: 输入框的只读模式的标识


space: 输入框是否能输入空格的标识


icursor: 输入框文本输入提示符的字符


value_surface: 表面的值,一般和 value 一样,但文本过多时,两者不一样


value_normal: 一般显示文本,即鼠标未在输入框上面时显示文本


value_touch: 鼠标触碰到的值,即鼠标放在输入框上面但未点下去时显示的文本


limit: 文本长度的限制(一般字符长度算 1,中文字符长度算 2 个),为负数时表示无限制


下面展示一个实例:(更好的实例可以去后面的“实战效果展示”中查看)


CanvasText 详细用法

实例的源代码:

import tkintertools
root = tkintertools.Tk('tkinter辅助模块操作说明', '960x540')
canvas = tkintertools.Canvas(root, 960, 540)
canvas.place(x=0, y=0)
background = tkintertools.PhotoImage('background.png')
canvas.create_image(480, 270, image=background)
tkintertools.CanvasText(canvas, 100, 100, 300, 150, 0,
                        color_text=('grey', 'white', 'white'),
                        color_fill=tkintertools.COLOR_NONE,
                        color_outline=('grey', 'white', 'white'))
root.mainloop()
目录
相关文章
|
7月前
|
机器学习/深度学习 数据可视化 PyTorch
PyTorch基础之模型保存与重载模块、可视化模块讲解(附源码)
PyTorch基础之模型保存与重载模块、可视化模块讲解(附源码)
166 1
|
7月前
|
机器学习/深度学习 并行计算 算法
OpenCV简介、导入及图像处理基础方法讲解(图文解释 附源码)
OpenCV简介、导入及图像处理基础方法讲解(图文解释 附源码)
154 0
|
前端开发 Python 容器
tkinter 模块的最强辅助模块 —— tkintertools(万字详解)(一)
tkinter 模块的最强辅助模块 —— tkintertools(万字详解)(一)
213 0
|
前端开发 Python 容器
tkinter 模块的最强辅助模块 —— tkintertools(万字详解)(二)
tkinter 模块的最强辅助模块 —— tkintertools(万字详解)(二)
233 0
|
前端开发 Python
tkinter 模块的最强辅助模块 —— tkintertools(万字详解)(四)
tkinter 模块的最强辅助模块 —— tkintertools(万字详解)(四)
255 0
|
Python 容器
Python Qt GUI设计:QMdiArea和QMdiSubWindow类实现多文档界面(拓展篇—3)
一个典型的GUI应用程序可能有多个窗口,选项卡控件和堆栈窗口控件允许一次使用其中的一个窗口。然而,很多时候这种方法不是很有用,因为其他窗口的视图是隐藏的一种同时显示多个窗口的方法是,创建多个独立的窗口,这些独立的窗口被称为SDI(Single Document Interface,单文档界面),每个窗口都可以有自己的菜单系统、工具栏等。这需要占用较多的内存资源。
|
Python
Python Tkinter 教程(四)—— 子模块 messagebox、colorchooser 以及 filedialog 的使用及技巧(万字详解)(上)
Python Tkinter 教程(四)—— 子模块 messagebox、colorchooser 以及 filedialog 的使用及技巧(万字详解)(上)
277 0
|
Python
Python Tkinter 教程(四)—— 子模块 messagebox、colorchooser 以及 filedialog 的使用及技巧(万字详解)(下)
Python Tkinter 教程(四)—— 子模块 messagebox、colorchooser 以及 filedialog 的使用及技巧(万字详解)(下)
331 0
|
存储 JSON 编解码
深度之眼(十四)——Python:文件、异常和模块
深度之眼(十四)——Python:文件、异常和模块
156 0
深度之眼(十四)——Python:文件、异常和模块
|
机器学习/深度学习 数据可视化 数据挖掘
深度之眼(十四)——Python:文件、异常和模块(下)
深度之眼(十四)——Python:文件、异常和模块(下)
101 0
深度之眼(十四)——Python:文件、异常和模块(下)