python.tkinter设计标记语言(渲染3-内置控件)

@TOC

前言

本文只作为笔记记录。

“tkinter.Text是仅次于Canvas的高丰富自由度的控件”,这句话在旧版TinML实现笔记中就写道。

这两个控件的具体讲解当然不是本文的重点,但是得知道,tkinter中的画布自由度绝对高于文本框,许多文本框实现不了的功能,可以交给画布实现。

关于tkinter画布的高可定制性,可见我的另一个小项目,基于tkinter画布的现代元素控件库

本文将以TinML的<n>(<note>)标签为例,讲解新TinML实现中关于内置控件的设计。

内置控件拓展

在TinText(软件项目名称)的渲染器实现由/lib/TinEngine负责,TinText在TinEngineCore.py中实现,

TinText项目开源地址

为了保持核心文件内部的功能单纯,TinEngine另开一个controls.py文件,用来创建需要额外拓展的内置控件。

说明与引用文本段的内置控件定义如下:

class TinTextNote(tk.Canvas):
    #TinText的引用说明框
    def __init__(self,tintext,width,notes,font,markcolor,fg,bg,markbg):
        """
        notes:list
        markcolor:str
        fg:str
        bg:str 画布颜色
        markbg:str 文本背景色
        """
        super().__init__(master=tintext,width=width
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值