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()
目录
打赏
0
0
0
0
8
分享
相关文章
使用 tkintertools 模块显示简单的 3D 效果
如何使用 Python 快速又简单地显示 3D 效果呢?使用 tkintertools 模块,轻松地做到这一点!(本文适用于 tkintertools-v2.6.6)
559 1
为Python打包创建一个世外桃源,解决打包太大且启动慢的问题
首先是我用的是Anaconda的集成环境,由于Anaconda或者自己搭建的环境里内置了很多库,而且在日常的开发中又安装很多开发所需要的其他库,打包的时候就把很多不必要的模块打包进去,导致打包出来的文件过于臃肿.打开慢由于运行需要加载这些环境,由于加载的库过多导致耗时过长,而且Python是一门解释型语言,本身运行效率上也稍慢,所以能够明显体会到启动时的漫长等待 我们写代码就是为了高效,怎么能受得了打开慢且占资源的东西呢,那如何能解决这个问题呢?
1885 1
【附源码】ttkbootstrap实现GUI信息管理系统
使用`ttkbootstrap`构建的GUI学生信息管理系统,展示学生数据的`Treeview`,支持添加、编辑和删除记录。核心功能包括: - `Treeview`展示学生信息。 - 表单窗口添加和编辑信息,利用`open_form_window`处理交互。 - 选择项后,`edit_data`和`delete_data`分别用于编辑和删除。 - 需要Python 3.8+和ttkbootstrap 1.10.1。 - 源码展示了数据结构、事件处理和窗口布局。 要运行,安装依赖并执行代码,测试各项功能以确保正常工作。
437 0
【附源码】ttkbootstrap实现GUI信息管理系统
|
10月前
|
wgs84和wgs84web如何转换?
wgs84和wgs84web如何转换?
1009 60
|
9月前
|
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
318 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
8月前
pyqt6 制作一个颜色调节器 02
本文介绍了如何使用PyQt6实现一个颜色调节器。首先创建了一个显示RGB颜色值变化的标签,然后通过三个旋钮(QDial)分别控制红、绿、蓝三种颜色的值,并在旋钮下方显示当前值。通过嵌套布局实现了旋钮和标签的排列,最终实现了颜色值的变化和显示。完整代码也一并提供。
177 0
游戏开发丨基于PyGlet的简易版Minecraft我的世界游戏
游戏开发丨基于PyGlet的简易版Minecraft我的世界游戏
353 2
基础入门 HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断
基础入门 HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断
161 0
PyAlgoTrade 0.20 中文文档(二)(1)
PyAlgoTrade 0.20 中文文档(二)
103 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问