<TinUI, a modern frame to render various widgets element for tkinter in one control.>
    Copyright (C) <2021-present>  <Smart-Space | Junming Zhang> <tsan-zane@outlook.com | smart-space@qq.com>
    2019（原型框架）2021（正式命名TinUI发布）
基于GPLv3和LGPLv3发布

==========更新日志==========


==========6.3==========
2025-8-18
1. 优化listview的居中计算，更准确
2. menubutton支持Segoe图标
3. menubar支持按钮Segoe图标
4. HorizonPanel, VerticalPanel添加clear_children方法
5. entry标识符改为Segoe Fluent Icon字符

==========6.2==========
2025-8-16
1. listview选项背景改为圆角，注意，使用内部ui绘制背景
2. 提供Mac下的字体解决建议
3. listview程序选择时会尽量将选项保持在视图中央
4. radiobutton选项背景改为圆角
5. progressbar使用圆角
6. textbox使用圆角并取消边框宽度参数
7. 添加button2延申样式accentbutton, toolbutton
***破坏性更新***
从TinUI-6.2版本开始，暗色样式正式匹配WinUI3暗色，亮色样式也将进行完全适配。
原本的Dark配色改名为淡钢蓝配色(SteelBlue)且不再更新。

==========6.1==========
2025-8-10
1. treeview拓展面板适配选项背景宽度
2. 纵向、横向面板添加控件未指定尺寸时，获取控件对应方向上的尺寸
3. TinUIXml支持tooltip

==========6.0==========
2025-8-2
1. 简化uid创建
2. picker选项响应鼠标进入颜色改为同按钮背景色
3. 弃用waitbar1, waitbar2, swipecontrol, info, canvas，但未删除
4. listview, notebook, treeview支持对齐方式
5. 控件创建函数删除不必要的变量
6. 支持版面布局Panel:
- ExpandPanel: one widget/Panel，响应窗口缩放
- VerticalPanel: multiple widgets/Panels，纵向排列
- HorizontalPanel: multiple widgets/Panels，横向排列
支持（expand, vertical/horizontal）:
title v/h
paragraph v/h
button expand, v/h
label expand, v/h
checkbutton v/h
entry expand, v/h
separate expand, v/h
radiobutton v/h
link v/h
combobox v/h
progressbar expand, v/h
table v/h
onoff v/h
spinbox v/h
scalebar v/h
waitbar3 expand, v/h
textbox expand, v/h
listbox expand, v/h
listview expand, v/h
ui expand, v/h
pipspager expand, v/h
notebook expand, v/h
ratingbar v/h
radiobox v/h
pivot v/h
button2 expand, v/h
waitframe expand, v/h
treeview expand, v/h
passwordbox expand, v/h
image v/h
togglebutton v/h
picker v/h
menubutton v/h
barbutton v/h
breadcrumb v/h

==========5.38==========
2025-7-19
1. 简化大部分圆角矩形绘制代码
2. 新增breadcrumb，导航栏控件

==========5.37==========
2025-7-17
1. labelframe在无标题时仅绘制边框
2. 修复button2在无图标字符时删除空文本的错误
3. 支持自定义对话框

==========5.36==========
2025-7-14
1. 针对持续维护的tinuilight, tinuidark，使用参数覆盖而非直接指定颜色，即可额外自定义各控件颜色
2. menubutton, picker添加点击时按钮颜色参数
3. 弹出窗口在最后一轮动画才会尝试获取焦点

==========5.35==========
2025-7-7
1. 将所有内置实体控件加入ui.windows，在TinUI销毁后进行销毁
2. listview.select会同步视图
3. 优化渲染并修复若干小问题
4. 对话框接受键盘事件选择和确定按钮
5. link返回值添加背景元素

==========5.34==========
2025-7-6
1. TinUIXml的clean将会完全回退到初始化
2. listview添加getsel方法（返回nowon）以及select方法（传入index）

==========5.33==========
2025-7-5
1. 修复listview删除元素后标识线错位的问题
2. combobox, listbox添加过渡色
3. tooltip计时使用tcl/tk原生after方法

==========5.32==========
2025-6-29
1. listbox滚动条仅在元素超出视图时显示
2. 优化treeview滚动条的动态显示
3. flyout添加偏移量offset=(x:int, y:int)

==========5.31==========
2025-6-27
1. combobox添加响应色和响应动画
2. onoff增加响应色
3. 更新说明文档

==========5.30==========
2025-6-20
1. 修复spinbox样式问题
2. 动画效果全改由after方法实现
3. notebook滑动块仅在栏目数大于标签栏时出现
4. treeview滚动条仅在元素超出视图时显示
5. treeview, listbox, listview销毁后清理内部数据对象
6. button2在text为空时，删除文本元素，返回button为None
!!! 弃用TinUIEvent类，暂停提供TinUIWidget类

==========5.29==========
2025-6-15
1. button2改为鼠标松开后执行回调函数，样式恢复逻辑改为鼠标松开
2. 优化flyout动画
3. 修复Dialog的提示色错误问题

==========5.28==========
2025-6-7
1. ratingbar增加返回背景元素
2. pivot增加选择函数
3. entry, passwordbox增加过渡响应颜色

==========5.27==========
2025-5-12
1. 标准样式库添加back元素
2. ratingbar添加选择评级方法

==========5.26==========
2025-4-22
1. 修复treeview以子树结尾时展开错误的问题

==========5.25==========
2025-4-12
1. 修复tinuixmltest的正则表达式错误
2. togglebutton添加开关方法

==========5.24==========
2025-3-21
1. onoff可指定标识符字体大小
2. 修复listview删除最后一个元素后，仍然显示最后一个元素高度的问题
3. 修复listbox删除最后一个元素时发生的错误

==========5.23==========
2025-3-14
1. 修复entry, passwordbox提示线在TinUIXml下的错位问题
2. 修复spinbox强制锁定的问题

==========5.22==========
2025-3-9
1. 自带uixml的控件，在删除时也会删除TinUIXml
2. 修复theme错误
3. 修复对话框基类

==========5.21==========
2025-3-7
1. listbox添加清空功能
2. 基于TinUILight, TinUIDark的Dialog附加样式类
3. spinbox回车时，如果输入数据符合条件，则触发回调函数
4. radiobox方法增加select

==========5.20==========
2025-3-1
1. 修复listview清空或删除视图后页面元素仍占用内存的问题
2. 修复TinUIXml(allanchor)对齐方式分配id不唯一的问题

==========5.19==========
2025-2-27
1. listview增加清空方法
2. entry中有内容就显示删除按钮
3. 删除passwordbox输入判定
4. 优化entry, passwordbox提示符样式(不再支持linew参数)

==========5.18==========
2025-2-12
1. 修复列表选择对话框的尺寸错误问题
2. 超链接、菜单等包含函数类型的多接受类型参数，使用callable判断是否可调用
3. pivot初始化时不再自动触发选择
4. 浮出窗口在初始化后直接隐藏，等待调用
5. notebook标签标题与边框间隔2px

==========5.17==========
2025-2-8
1. TinUIXml下expander、flyout支持直接使用xml布局
2. 优化展示画廊配色，修改部分示例
3. 优化spinbox样式
4. 修复entry、passwordbox提示符颜色错误
5. button2添加过渡响应色
6. 如下控件按钮添加过渡响应色参数：
    button2, menu, menubutton, pipspager, expander,
    picker, barbutton
7. 如下控件背景适配改进贴合性：
    treeview, listbox(并且改为圆角边框), combobox,
    menu, menubutton
8. 修复TinUIXml下ui标签内绑定回调函数异常的错误
9. 修复treeview未选中时折叠和展开的错误
10. 修复togglebutton颜色转换时计算出错问题（防止溢出，对十六进制个位数补位）

==========5.15==========
2025-2-1
1. TinUIXml<line>对齐支持整体对齐，使用lineachor参数控制对齐方式，该值不会向内传递
2. 新增浮出ui控件 flyout
3. listbox允许初始化为0个元素
4. picker底部按钮添加响应颜色
5. label返回值添加back背景元素
6. TinUIXml支持直接使用flyout控件
7. TinUIXml下ui支持直接使用xml布局
8. 优化TinUIXml性能

==========5.13==========
2025-1-8
1. 统一大圆角8px（width=17），小圆角4px（width=9）。包括：
    entry, link, labelframe, combobox, table, spinbox,
    menu, tooltip, listview, notebook, notecard, button2,
    expander, waitframe, treeview, passwordbox, togglebutton,
    picker, menubutton, barbutton
2. 优化spinbox调节按钮外观
3. 调整barbutton，menubar，menubutton外框与内容的间距
4. 修复checkbutton状态切换函数的问题
5. 修复treeview展开选项的问题
7. 修复listview删除元素后的元素列表存储错误以及样式提示符位置错误
8. listview允许初始为0个元素，并修复了删除元素时可能出现的错误

==========5.11==========
2024-12-28
1. 允许额外的LGPLv3许可
2. 修复密码输入框的提示符颜色错误
3. 优化部分控件动画性能
4. 改进pipspager动画
5. windows下进行部分高dpi测试
6. 改进combobox效果

==========5.10==========
2024-11-9
1. 优化滚动条标识符
2. 优化标签页选项卡关闭标识符
3. 调整工具栏按钮默认字体大小
4. 树状图优化图标
5. 优化部分控件创建性能
6. 优化TinUIXml效率

==========5.9==========
2024-10-6
1. 增加extension拓展包，支持按钮化控件
2. radiobox增加funcs返回值
3. TinUITheme（明亮/暗黑）统一背景配色
4. 修复滚动条初始化可能导致的错误

==========5.8==========
2024-8-28
1. button2, barbutton优化有图标无文字的排版
2. listview新增元素获取、删除、增加方法
3. 更新entry样式
4. 更新passwordbox样式
5. barbutton兼容3.6~3.9版本python
6. 更新combobox样式

==========5.7==========
2024-8-23
1. 修复scalebar禁用后仍然出现响应样式的问题
2. 修复checkbutton禁用后标识符错误的问题
3. 启用帮助手册

==========5.6==========
2024-8-23
1. 对话框按钮自定义文本
2. 优化menubar, menubutton, picker, combobox动画视觉效果
3. 新增选择对话框 ask_choice (listbox)
4. 修复notebook载入TinUI页面的错误

==========5.5==========
2024-8-15
1. 内置对话框

==========5.4==========
2024-8-8
1. 新增工具栏按钮组件，barbutton(AppBarButton)
2. button2添加icon参数，用来使用Fluent Icons符号，compound in top,bottom,left,right
3. 修复ratingbar某些情况下无法选中的错误

==========5.3==========
2024-7-31
1. TinUIXml编辑器手动输入标记点信息
2. entry添加删除、插入文本方法
3. menubutton可选是否显示标识符
4. TinUIXml自定义间距，优先级比坐标自定低

==========5.2==========
2024-7-16
1. button最大化宽度、最小化宽度参数
2. button2最大化宽度、最小化宽度参数
3. 修复treeview跨级选定展开单层后的报错问题
4. TinUIXml简易编辑器添加标记点管理
5. listbox的add方法中重新设计位置确定逻辑
6. listbox回调command参数result增加result.index属性

==========5.1==========
2024-7-5
1. test\tuxmltest.py 升级为简易TinUIxml编辑器
2. 优化scalebar标识符元素
3. BasicTinUI新增show_location方法，用于设计时反馈坐标信息
4. checkbutton引发响应的command接受的唯一参数为选定状态，True/False

==========5.0==========
2024-6-24
1. 以下控件接入统一坐标对齐模式：listview, pipspager, ratingbar,
    radiobox, pivot, button2, waitframe, passwordbox, image,
    swipecontrol, picker
2. radiobox使用新样式，同时更改默认间距
3. 优化expander样式
4. 优化spinbox提示符
5. 优化passwordbox提示符
6. 修复TinUIXml自定义初始坐标被忽略的问题
7. tinuixml修复x，y参数自定义，新增anchor自定义(精确到line，但是每个标签内优先级更高)
2024-6-16 pre-5
1. 更新checkbutton样式
2. waitbar2新样式
3. 以下控件接入统一坐标对齐模式：checkbutton, entry, radiobutton,
    link, waitbar1, waitbar2, combobox, button, label, progressbar,
    table, onoff, spinbox, scalebar, info, waitbar3
4. radiobutton去除边框
5. combobox新样式，增加height参数，控制浮出窗口高度
6. onoff新样式
7. info提示触发文本后加入叹号提示文本标识符
8. waitbar3使用圆角
2024-2-15 pre-4
1. labelframe改为圆角边框
2. notebook新样式
3. ratingbar新样式，参数r改size（字体大小）
4. BasicTinUI.clean_windows()清除浮出控件的子窗口，TinUIXml的clean也会触发
5. notebook支持自定义滚动条颜色
2024-2-13 pre-3
1. 优化pipspager样式
2. textbox, listbox, canvas, ui支持自定scrollbar颜色
3. 新介绍窗口
4. scrollbar新标识元素
5. 修复treeview展开时可能的提示元素的位置错位
2024-2-9 pre-2
1. 更新menu样式
2. menubutton 添加segeo fluent icon字体文件
3. 更新picker样式
4. 新logo
5. 新增菜单按钮 menubutton
6. 更新黑暗样式
2024-2-6 pre-1
1. 添加TinUIFont类，管理字体文件
2. 更新table样式

==========4.7==========
2024-1-24
1. 优化radiobox样式
2. 新增滚动选值框 picker

==========4.6==========
2023-12-17
1. spinbox返回值添加num属性
2. 修复listbox横向滚动条长度错误的问题

==========4.5==========
2023-11-12
1. 修复treeview调试错误

==========4.4==========
2023-3-11
1. 新增密码输入框 passwordbox

==========4.3==========
2023-2-2
1. 优化帮助手册
2. 优化ratingbar, onoff外观
3. 优化spinbox外观，更新spinbox示例
4. 修复treeview的一个展开错误
5. 新增滑动控件 swipecontrol

==========4.2==========
2023-1-21
1. 更改image计算精度
2. listbox添加add、delete方法
3. ratingbar只选择一个星且再次选择第一个时，取消选择，返回0
4. 修复button2无法返回边框元素的错误
5. 修复radiobox示例中的错误
6. 添加状态开关按钮 togglebutton

==========4.1==========
2023-1-9
1. 优化 TinUI帮助手册
2. 添加pipspager切换动画
3. 修复treeview展开和闭合后触发选定的问题

==========4.0==========
2023-1-1
1. 优化radiobox效果
2. 修复listview返回元素不全的问题
3. 新增树状图 treeview
4. 使用TinUI LOGO.ico
5. 新增普通图片 image
6. 随包发布 TinUI帮助手册 实用程序，在\test目录下
7. 优化复选框标识符

==========3.34==========
2022-10-22
1. 新增列表视图 listview
2. 更新样式
3. TinUI支持直接横向滚动
4. 破坏性，tooltip返回值改为函数get_return，节省窗口资源

==========3.33==========
2022-10-4
1. 新增元素等待框 waitframe

==========3.32==========
2022-9-17
1. 感谢TotoWang-hhh（github）提交的自动识别windows系统深浅色模式样式
2. window.py添加快速翻页功能，方便样式theme开发者展示

==========3.31==========
2022-9-9
1. onoff移动动画
2. 创建TinUIWidget类，用来显示单个元素控件
3. 修改expander, notebook, notecard的圆角
4. back边框圆角

==========3.30==========
2022-8-27
1. tooltip新增delay参数，允许延时显示
2. textbox添加相关方法
3. 网站同步changelog
4. TinUIXml添加environment方法，用以快速导入funcs和datas
5. onoff重写，采用新样式，增加相关方法
6. scrollbar样式对称，不使用时保持静默状态

==========3.24==========
2022-8-20
1. 修复横向scrollbar最大值滚动问题
2. 更新pipspager标识符样式
3. 修复pipspager向左越界移动的问题
4. 版权更新
5. 添加此文件

==========3.23==========
2022-8-13
1. 增加entry方法
2. 增加entry测试文件
3. 更新ratingbar功能
4. link控件如果接受一个超链接，则显示链接地址
5. info/tooltip指定文本宽度

==========3.22==========
2022-8-6
1. 新增可折叠UI元素控件 expander

==========3.21==========
2022-7-30
1. 修复若干问题
2. 优化menu首次点击明显位移问题

==========3.20==========
2022-7-24
1. 防止三种waitbar元素名称重合
2. 添加圆角按钮 button2
3. 更新tooltip的圆角样式
4. info改为封装tooltip

==========2.16==========
2022-7-17
1. 添加支点标题组件 pivot

==========3.15==========
2022-7-13
1. 更新waitbar1的样式
2. 增加waitbar3的视觉效果
3. notebook可以更改标题名称

==========3.13==========
2022-7-3
1. 重新添加新的table最大宽度参数
2. notebook可指定是否响应新界面按钮

==========3.11==========
2022-6-26
1. 修复menu分割线，使用独立的线段绘制
2. 新增便笺控件 notecard
3. 在readme上添加示例代码

==========3.10==========
2022-6-19
1. 增加FuncList类统一管理返回函数
2. table新增maxwidth参数
3. 修改notebook样式
4. notebook新增界面可决定是否能删除

==========3.9==========
2022-6-5
1. 优化menu逻辑
2. 新增单选组控件 radiobox
3. scalebar标识线段圆角
4. 调整radiobox标识样式
5. 添加radiobox样式

==========3.7==========
2022-5-29
1. 添加TinUIEvent事件管理
2. 更新scalebar样式，启用WinUI3样式
3. 优化checkbutton标识符比例

==========3.6==========
2022-5-15
1. 完善TinUITheme类对于TinUIXml的契合度
2. 添加separate出现动画
3. 修复ratingbar糙度问题
4. link圆角背景
5. link添加目标函数，最高优先级

==========3.5==========
2022-5-8
1. 修复menu延迟动画问题
2. 更新配色样式

==========3.4==========
2022-5-3
1. menu滚动动画
2. 更新entry样式，启用WinUI3样式
3. 添加评星级控件 ratingbar

==========3.3==========
2022-4-30
1. 添加标签栏视图 notebook

==========3.1==========
2022-4-17
1. 更新checkbutton样式
2. uid的定义均改外字符串
3. labelframe增加pos标识参数，用于TinUIXml渲染

==========3.0==========
2022-4-3
1. 修复pipspager转换接口使用后，样式无变化的问题
2. 稳定TinUIXml使用以及规范

==========2.20==========
2022-3-27
1. 新增内置界面框架 ui
2. 修复TinUI自动刷新结束时报错的BUG，但不是元素控件，实际上这类报错无关紧要
3. 添加横向翻页视图 pipspager

==========2.16==========
2022-3-12
1. 添加TinUITheme统一基类
2. TinUIXml支持重写的TinUI和BasicTinUI的样式
3. 更新样式范例
4. 添加画布 canvas
5. 更新窗口样式
6. 修复button背景响应颜色显示错误的问题
7. 删除button响应测试代码

==========2.15==========
2022-2-26
1. 更新spinbox样式
2. 添加entry（可选）直接处理输入的功能
3. 添加TinUIXml对滚动条的支持
4. 新增列表框 listbox

==========2.14==========
2022-2-12
1. 修复上一个版本的xml解析问题

==========2.13==========
2022-2-12
1. 修复上一个版本的文档问题

==========2.12==========
2022-2-12
1. 添加lighttheme测试文件
2. 更新radiobutton样式
3. 添加配色风格示例

==========2.11==========
2022-2-9
1. 使用GPLv3开源协议
2. 编写tinuixml相关文档

==========2.10==========
2022-2-8
1. 新增文本框 textbox
2. 新增滚动体 scrollbar

==========2.9==========
2022-2-4
1. 更新entry边框样式
2. 添加带状等待框 waitbar3

==========2.8==========
2022-1-30
1. 更新scalebar初始坐标设计
2. 添加背景元素 back
3. scalebar新样式
4. 修复back坐标优先逻辑错误
5. 修复TinUIXml坐标初始化逻辑错误
6. 更新TinUIXml对元素控件uid获取
7. 更新link样式
8. link既可以指向网页，也可以指向函数，类winui设计

==========2.7==========
2022-1-36
1. TinUIXml允许行元素嵌套
2. xml布局确立行元素与纵块的概念
3. 添加TinUIXml代码预览测试文件
4. entry控件的边框和提示符位置由Entry组件控制，修复由字体改变造成的错误
5. 简化combobox的tag绑定
6. 添加窗口提示框架 tooltip
7. 修复TinUIXml的纵块无法确定最大宽度的问题

==========2.6==========
2021-1-24
1. TinUI主体和框架分离，主体为BasicTinUI，框架为TinUI
2. 测试button combobox返回参数
3. 完善scalebar测试
4. 优化progressbar测试
5. 创建TinUIXml，允许使用xml语言来渲染TinUI或BasicTinUI的组件界面
6. 更新xml换行解析渲染逻辑

==========2.5==========
2021-1-21
1. TinUI左键单击获取焦点
2. entry使用WinUI2样式
3. 更新checkbutton样式
4. 增加checkbutton样式参数
5. 修复checkbutotn状态标识符点击无效的问题
6. 为同框架元素控件添加统一的最后一个返回值uid，为xml布局打下基础
7. 修改menu默认透明色

==========2.4==========
2022-1-2
1. 添加table示例
2. 修复table表头高度不一致的问题
3. 更新button样式

==========2.3==========
2021-12-19
1. 修复menu初次显示的位移问题，修复圆角

==========2.2==========
2021-12-12
1. button新增边框参数
2. 恢复table的minwidth参数
3. 修复button边缘无响应的问题
4. 修改table样式
5. 修改menu布局
6. 启用圆角menu样式

==========2.1==========
2021-11-13
1. 调整元素层级
2. 添加菜单 menu
3. 确定菜单内容标记

==========2.0==========
2021-10-24
1. 添加气泡提示 info
2. 提供完善的API

==========1.9==========
2021-10-4
1. 修改entry样式

==========1.8==========
2021-8-25
1. 修复scalebar拖拽问题
2. 添加button相关方法
3. 添加button示例
4. 添加radiobutton相关方法
5. 修改combobox样式
6. 修改spinbox样式
7. 添加scalebar示例
8. 添加checkbutton radiobutton示例
9. 添加scalebar相关方法

==========1.6==========
2021-8-20
1. 确定TinUI logo
2. 添加调节框 scalebar

==========1.5==========
2021-8-7
1. checkbutton添加新文本元素及参数
2. 添加选值框 spinbox

==========1.4==========
2021-8-3
1. 修改button combobox原始样式
2. 修改link样式
3. 修改waitbar1 waitbar2样式
4. 添加开关 onoff
5. 修改combobox样式

==========1.3==========
2021-7-27
1. 添加表格 table

==========1.2==========
2021-7-25
1. 添加进度条 progressbar

==========1.1.2==========
2021-7-23
1. 修改readme文件链接错误

==========1.1.1==========
2021-7-23
1. 修复waitbar2样式

==========1.1==========
2021-7-21
1. 添加点状等待组件 waitbar2
2. 添加组合框 combobox
3. 上传组件样式图像gif
4. 在readme文件中添加gif链接

==========1.0==========
2021-7-16
1. 添加TinUINum记录结构类
2. 添加TinUI自动刷新滚动范围的参数
3. 修复checkbutton回调问题
4. 添加圆形等待组件 waitbar1
5. 移除其它依赖，完全使用标准库

==========beta-6（preview）==========
2021-7-13
1. 取消对TinEngine的内部调用支持，计划使用完整的标准库编写
2. 添加button激活样式

==========beta-5==========
2021-6-26
1. 为部分元素控件添加对齐位置参数
2. 添加超链接 link

==========beta-4==========
2021-5-16
1. 添加分割线 separate
2. 添加单选框 radiobutton

==========beta-3==========
2021-4-17
1. 添加输入框 entry

==========beta-2==========
2021-3-27
1. 添加复选框元素控件 checkbutton

==========beta-1==========
2021-3-20
1. 正式命名TinUI
2. 确定TinUI开发方向，为tkinter提供现代样式的独立元素控件
3. 创建文本元素控件 title label paragraph
4. 创建按钮元素控件 button

==========alpha-4==========
2021-1
1. 放弃文本排版路线
2. 开始绘图元素控件路线

==========alpha-3==========
2020-11
1. 停止对TinEngine的专门支持
2. 删除基本绘图包装
3. 计划文本排版功能

==========alpha-2==========
2020-3
1. 包装基本绘图功能

==========alpha-1==========
2019
1. 创建项目，作为TinEngine内置功能画布
