Copyright (C) <2021-present> 2019(原型框架)2021(正式命名TinUI发布) 基于GPLv3和LGPLv3发布 ==========更新日志========== ==========6.3========== 2025- 1. 优化listview的居中计算,更准确 ==========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对齐支持整体对齐,使用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内置功能画布