Package: tinui
TinUI项目类型TinUI是一个基于tkinter（Python/tcl/tk）的拓展组件（Widget），可以绘制虚拟组件。TinUI基于tkinter的画布（Canvas），可以作为整个窗口的唯一控件。TinUI能够通过自身绘制出功能组件和文字，也可以使用画布功能添加组件。使用TinUI，可以使界面设计和代码设计分离，此外，TinUI绘制的虚拟组件速度更快，样式更加丰富。目前，TinUI可用于常规tkinter窗口开发。依赖目前，TinUI没有依赖项目。开源协议TinUI使用GPLv3（GPL）作为开源协议。非商业软件，TinUI部分代码必须开源，即使源码被修改。开源的TinUI部分代码必须采用同样的开源协议——GPL，并且注明开发者 Smart-Space（Junming Zhang），以及GitHub/TinUI的开源代码库：https://github.com/Smart-Space/TinUI/商业软件，需要添加TinUI的gpl-3.0.md的开源许可，为自身使用TinUI最初声明，并且公开TinUI部分的代码。此外，需要注明开发者Smart-Space（Junming Zhang）对TinUI的版权所有，以及GitHub/TinUI的开源代码库：https://github.com/Smart-Space/TinUI/简单示例以下是一段简易TinUI代码示例：fromtkinterimportTkfromtinui.TinUIimportTinUI#导入TinUIdefdop(cont):#处理输入框返回事件print(f'输入框内容为：{cont}')r=Tk()r.geometry('500x500+10+10')ui=TinUI(r)ui.pack(fill='both',expand=True)#填充窗口#绘制若干个按钮ui.add_button((5,5),text='one')ui.add_button((55,5),text='two1')ui.add_button((55,40),text='two2')ui.add_button((110,5),text='three')#绘制一个输入框，并绑定到处理函数：dopui.add_entry((5,180),350,'这里用来输入',command=dop)r.mainloop()更新日志TinUI更新日志。贡献者TinUI贡献者列表。Class: TinUI(BasicTinUI)TinUI模块的主类，基于Class: BasicTinUI。创建TinUItinui=TinUI(root,bg='white',update=True,update_time=1000)'''update:bool::是否实时更新滚动画面update_time:int::每次更新滚动画面的间隔（毫秒）**kw::Canvas的参数'''基础函数==一般地==，会将每个函数的名称以及定义、参数内容、函数绘制说明列出来。所有函数均会返回主要画布对象。TinUI.add_...(...)。除了title,paragraph,separate,menubar,labelframe,tooltip,back等组件，其余组件的最后一个返回值均为整个组件的画布tag_name，返回值变量为uid。add_title(self,pos:tuple,text:str,fg='black',font='微软雅黑',size=1,anchor='nw',**kw)pos::位置text::标题文字fg::文本颜色font::文本字体size::文本字体大小。依据字典：{0:20,1:18,2:16,3:14,4:12}anchor::对齐方向绘制一个大字体标题。return: titleadd_paragraph(self,pos:tuple,text:str,fg='black',font=('微软雅黑',12),side='left',width=500,anchor='nw',**kw)pos::位置text::标题文字fg::文本颜色font::字体名称+大小side::对齐方向width::一行允许的最大字符宽度anchor::对齐方向绘制一个段落。return: paragraphadd_button(self,pos:tuple,text:str,fg='black',bg='#CCCCCC',line='#CCCCCC',linew=3,activefg='black',activebg='#999999',activeline='#7a7a7a',font=('微软雅黑',12),command=None,anchor='nw')pos::位置text::标题文字fg::文字颜色bg::按钮颜色line::边框颜色linew::边框宽度activefg::响应鼠标的文本颜色activebg::响应鼠标的按钮颜色activeline::响应鼠标的边框颜色font::字体名称+大小command::绑定的函数。该函数必须要有event参数，因为TinUI的按钮会传递点击事件的eventanchor::对齐方向绘制一个按钮。这个按钮会响应鼠标的离开和进入事件，被单击时也会调用绑定的函数。return: button_text, button_back, funcs, uidbutton_text::按钮文本button_back::按钮背景funcsfuncs[0]|funcs.change_command(new_func)::为按钮绑定新函数funcs[1]|funcs.disable(fg='#7a7a7a',bg='#cccccc')::禁用按钮funcs[2]|funcs.active()::激活按钮add_label(self,pos:tuple,text:str,fg='black',bg='#f0f0f0',outline='grey',font=('微软雅黑',12),anchor='nw')pos::位置text::标题文字fg::文字颜色bg::背景色outline::边框颜色font::字体名称+大小anchor::对齐方向绘制一个类Label组件。return: label, uidadd_checkbutton(self,pos:tuple,text:str,fontfg='black',fg='#868686',bg='#ededed',activefg='#868686',activebg='#e5e5e5',onfg='white',onbg='#334ac0',font=('微软雅黑',12),command=None,anchor='nw')pos::位置text::标题文字fontfg::文本颜色fg::复选框边框颜色bg::复选框背景颜色activefg::响应鼠标边框颜色activebg::响应鼠标背景颜色onfg::选定时文本图标颜色obbg::选定时背景颜色font::字体名称+大小command::绑定的函数。该函数必须要有event参数，因为TinUI的按钮会传递点击事件的eventanchor::对齐方向绘制一个复选框。这个复选框会响应鼠标的离开和进入事件，被单击时也会调用绑定的函数，并且会根据当前样式更改点击后的样式。return: check_text, check_mark, funcs, uidcheck_text::复选框文本check_mark::复选框矩形标记部件，除边框funcsfuncs[0]|funcs.flash()::切换复选框状态funcs[1]|funcs.on()::选定funcs[2]|funcs.off()::取消选定funcs[3]|funcs.disable()::禁用funcs[4]|funcs.active()::激活add_entry(self,pos:tuple,width:int,text:str='',fg='black',bg='#cfd3d6',activefg='black',activebg='white',font=('微软雅黑',12),linew=3,outline='#63676b',onoutline='#3041d8',icon='>',anchor='nw',call='→',command=None)pos::位置width::宽度text::初始文字fg::文字颜色bg::背景颜色activefg::激活时字体颜色activebg::激活时背景色font::字体linew::边框宽度outline::输入框边框颜色onoutline::获取焦点时的边框颜色icon::内容为空时，右侧显示的字符anchor::对齐方向call::回调按钮文本，仅command存在时可用command::回调函数，可以通过按钮或回车键调用，函数需要接受text参数绘制一个单行输入框。这是一个半绘制组件，其实就是简化了Entry控件的导入。通过entry.get()获取值。return: entry, funcs, uidentry::输入框类（控件）funcsfuncs.get()::获取输入内容funcs.error(errorline='#c42b1c')::显示错误样式funcs.normal()::回复正常样式funcs.disable()::禁用输入框add_separate(self,pos:tuple,width:int,direction='x',fg='grey',anchor='nw')pos::位置width::长度direction::方向。“x”或“y”（横向 或 纵向）fg::颜色anchor::对齐方向绘制一条分割线。return: separateadd_radiobutton(self,pos:tuple,width,text='',choices=('choose me'),fg='black',bg='white',font=('微软雅黑',12),activefg='white',activebg='#4453db',command=None,anchor='nw')pos::位置width::整体宽度text::单选框文本提示choices::选项（list, set, map...）fg::文本和边框颜色bg::选项背景色font::字体activefg::选中字体和边框颜色activebg::选中背景颜色command::回调函数，有并且仅有一个参数，即该按钮所显示的文本anchor::对齐方向绘制一个单选框，竖式排列。return: text, choices_text_list, choices_back, funcs, uidtext::文本提示画布对象choices_text_list::可选框的文本画布对象choices_back::可选框的背景方框画布对象funcsfuncs[0]|funcs.select(num)::选定一个选项funcs[1]|funcs.disable()::禁用funcs[2]|funcs.active()::激活add_link(self,pos:tuple,text,url:Union[str,FunctionType],fg='#4f62ca',activefg='red',activebg='#eaeaea',font:tuple=('微软雅黑',12),anchor='nw')pos::位置text::网页链接或者要执行的函数，函数需要接受event参数url::链接或执行函数，当command为None时执行fg::文本颜色activefg::响应鼠标时文本颜色activebg::响应鼠标时背景颜色font::字体anchor::对齐方向command::目标函数，必须接受一个参数，链接目标（网页链接）字符串绘制一个链接文本，指向网页或者执行函数或者指向目标函数。return: link, funcs, uidlink::链接文本funcsfuncs[0]|funcs.disable(fg='#b0b0b0')::禁用链接funcs[1]|funcs.active()::恢复链接add_waitbar1(self,pos:tuple,fg='#0078D7',bg='',okfg='lightgreen',okbg='',bd=5,r=20)pos::位置fg::边框颜色bg::内部填充颜色okfg::完成时边框颜色okbg::完成时内部填充颜色bd::外框宽度r::半径绘制一个扇形等待框。return: waitbar1, ok, uidwaitbar1::该画布对象ok::停止等待动画的函数。当你完成你需要等待的任务后，你可以调用此函数，停止等待动画add_labelframe(self,widgets:tuple=(),title='',fg='#A8A8A8',bg=''）widgets::需要标题框囊括的画布对象title::标题fg::边框及标题颜色bg::背景色绘制一个标题框，以包含所制定的所有画布对象。return: label, framelabel::标题文本frame::边框画布对象add_waitbar2(self,pos:tuple,width:int=200,fg='grey',bg='white',okcolor='lightgreen')pos::位置width::宽度fg::点状颜色bg::背景颜色okcolor::完成时背景填充颜色绘制一个点状运动的等待框。return: back, balls:list, stop, uidback::背景矩形画布对象balls::五个圆形画布对象的列表stop::停止等待动画的函数。当你完成你需要等待的任务后，你可以调用此函数，停止等待动画add_combobox(self,pos:tuple,width:int=200,text='',content:tuple=(),fg='black',bg='white',activefg='#757F87',activebg='#CCE4F7',font=('微软雅黑',12),command=None)pos::位置width::组合框显示区宽度text::组合框显示区初始文字content::拥有组合框所包含的内容的元组fg::组合框文本、边框颜色bg::组合框背景色activefg::组合框选定时文本、边框颜色activebg::组合框选定时文本、边框背景色font::字体command::当某一刻选择框被点击回调的函数。该函数需要接受一个参数：该选项框的文本内容。绘制一个组合框。return: main, back, box_tagname, funcs, uidmain::显示框文字back::显示框背景box_tagname::所有选项框的tag名称funcsfuncs[0]|funcs.select(num)::选定选值，第一个值是0funcs[1]|funcs.disable()::禁用funcs[2]|funcs.active()::激活add_progressbar(self,pos:tuple,width=250,fg='#868686',bg='#334ac0',back='#f3f3f3',fontc='#79b8f8',percentage=True,text='')pos::位置width::宽度fg::边框颜色bg::填充颜色back::未被填充的背景颜色fontc::字体颜色percentage::是否显示进度文本，如果为False，则显示参数text的内容text::当不显示进度文本时，进度条上的文本内容绘制一个进度条。不提供进度动画，动画效果需要自己实现，参考TinUI.py的test4()函数。return: back, pro_tagname, text, goto, funcs, uidback::背景矩形边框pro_tagname::进度框矩形所代表的tag名称text::进度条文本goto::改变进度：goto(num:int)，其中，num∈[0,100]。这将改变组件进度指示funcsfuncs[0]|funcs.now_running()::恢复常规样式funcs[1]|funcs.now_paused(fg='#868686',bg='#9d5d00',fontc='#cdcdcd')::改为暂停样式funcs[2]|funcs.now_error(fg='#868686',bg='#c42b1c',fontc='#cdcdcd')::改为因错误暂停样式add_table(self,pos:tuple,outline='#E1E1E1',fg='black',bg='white',data=[['1','2','3'],['a','b','c']],minwidth=100,maxwidth=300,font=('微软雅黑',12),headbg='#d9ebf9')pos::位置outline::边框颜色fg::文本颜色bg::文本背景颜色data::表格数据。格式：((title,...,...),(content1,...,...),(content2,...,...),...)minwidth::单元格最小宽度maxwidth::单元格最大宽度font::字体headbg::表头背景色绘制一个表格。return: uid表格组件绘制较复杂，涉及到列宽度、行最大高度等内容，目前只返回整体画布tagadd_onoff(self,pos:tuple,fg='#575757',bg='#e5e5e5',onfg='#FFFFFF',onbg='#3041d8',command=None)pos::位置fg::关闭状态下的文本、边框颜色bg::关闭状态下的背景颜色onfg::开启状态下的文本颜色onbg::开启状态下的边框、背景颜色command::当被点击时调用的函数，函数只有一个参数：布尔值。调用参数True表示开启，False表示关闭绘制一个开关。return: state, back, outline, funcs, uidstate::开关标识符back::背景outline::边框，与背景为同一个类型，比背景尺寸稍大funcsfuncs.on::开启funcs.off::关闭funcs.active::启用fucns.disable(dfg='#f0f0f0',dbg='#bfbfbf')::禁用add_spinbox(self,pos:tuple,width=150,data=('1','2','3'),now='',fg='#1b1b1b',bg='#ffffff',line='#e5e5e5',activefg='#818181',activebg='#f2f2f2',font=('微软雅黑',12),command=None)pos::位置width::宽度data::可选值的内容。格式：(ele1,ele2,ele3...)now::当前显示值。如果为空或不在data中，则显示第一个值fg::文本颜色bg::输入框背景色activefg::按钮响应文本颜色activebg::按钮响应背景色font::输入框字体，同时会影响按钮字体command::选值时响应的函数，必须接受一个参数，这个参数是当前选定的值command返回值为string:TinUIString，string为值本身，来自于data。string.num为值在data中的索引，从0开始。绘制一个选值框。return: wentry, button1, button2, back, outline, uidwentry::输入框组件button1::上调按钮button2::下调按钮back::背景元素outline::边框元素add_scalebar(self,pos:tuple,width=200,fg='#4554dc',activefg='#4554dc',bg='#868686',buttonbg='#ffffff',buttonoutline='#cccccc',data=(1,2,3,4,5),start=1,command=None)pos::位置width::长度（宽度）fg::选值覆盖部分颜色activefg::滑动按钮激活颜色bg::选值未覆盖部分颜色buttonbg::按钮背景色buttonoutline::按钮边框色data::选值范围start::初始位置，第一个位置是0，第二个位置是1……command::选值完成后调用该函数，必须接受一个参数，这个参数为data中的一个值绘制一个滑动调节框。return: name, back, button, funcs, uidname::选值覆盖区域的tag名称back::选值未覆盖区域的画布对象button::选值滑动按钮funcsfuncs[0]|funcs.select(num)::选定选值，第一个值是0funcs[1]|funcs.disable()::禁用funcs[2]|funcs._active()::激活add_info(self,pos:tuple,info='i',font='微软雅黑 9',fg='#0078d4',bg='white',info_text='',info_font=('微软雅黑','12'),info_width=200,info_fg='black',width=400)pos::位置font::标识符字体fg::标识符颜色bg::气泡提示组件背景色info_text::提示文本info_font::提示文本字体info_width::提示文本每一行的宽度info_fg::提示文本颜色width::文本宽度绘制一个气泡提示框组件。return: text, back, uidtext::标识符文本back::标识符背景边框add_menubar(self,cid='all',bind='<Button-3>',font='微软雅黑 12',fg='#ecf3e8',bg='#2b2a33',activefg='#ecf3e8',activebg='#616161',cont=(('command',print('')),'-'),tran='#01FF11')cid::绑定的画布对象bind::绑定事件的类型font::菜单字体fg::字体颜色bg::背景颜色activefg::选定时字体颜色activebg::选定时菜单选项颜色cont::菜单内容tran::透明色cont的格式如下：(('名称',绑定的函数（接受event参数）),#常规格式
'-',#分割线
...,
)为绑定的画布对象被指定事件激活后，显示菜单。return: menu, bar, funcsmenu::菜单窗口（Toplevel）bar::菜单窗口中的TinUIfuncs::所有菜单按钮的函数集，每一个元素为每一个TinUI按钮的函数集add_tooltip(self,uid,text='',fg='#3b3b3b',bg='#e7e7e7',outline='#3b3b3b',font='微软雅黑 12',tran='#01FF11',delay=0,width=400)uid::画布对象text::提示文本fg::字体颜色bg::背景色outline::边框颜色font::字体tran::透明色delay::延时显示时间，以秒为单位width::文本宽度绘制一个信息提示窗口。return: get_returnget_return::函数，获取toti（提示窗口）和bar（其中的TinUI）add_back(self,pos:tuple,uids:tuple=(),fg='',bg='',linew=0)pos::起始位置，可用(0,0)忽略uids::包含的所有画布对象，优先考虑该参数，若只有一个元素，使用(id,)表示fg::边框颜色bg::背景色linew::边框宽度绘制一个背景框或间隔框，优先考虑uids参数。return: back效果见tooltip控件中绑定的label控件背景。add_waitbar3(self,pos:tuple,width:int=200,fg='#3041d8',bg='#f3f3f3',okcolor='lightgreen')pos::起始位置width::宽度fg::动画块颜色bg::背景色okcolor::完成时的颜色绘制一个带状等待框。return: back, bar, stop, uidback::背景框bar::动画块stop::停止等待动画的函数。当你完成你需要等待的任务后，你可以调用此函数，停止等待动画add_textbox(self,pos:tuple,width:int=200,height:int=200,text:str='',anchor='nw',font='微软雅黑 12',fg='black',bg='white',linew=3,scrollbar=False,outline='#63676b',onoutline='#3041d8')pos::起始位置width::宽度height::高度text::预置文本anchor::对齐方向font::字体fg::文本bg::背景色linew::边框宽度scrollbar::是否添加纵向滚动条outline::边框颜色onoutline::响应鼠标边框颜色绘制一个文本编辑框。return: textbox, funcs, uidtextbox::Text控件funcsfuncs.get(start='1.0',end='end')::获取输入funcs.delete(start='1.0',end='end')::删除内容funcs.config(**kw)::设置Text属性add_scrollbar(self,pos:tuple,widget,height:int=200,direction='y',bg='#f0f0f0',color='#999999',oncolor='#89898b')pos::起始位置widget::绑定滑动的组件，Text、Canvas、Treeview、Listbox等height::长度direction::方向，x或y，大小写无关bg::背景色color::滚动条闲置颜色oncolor::滚动条激活颜色为显示区域可变的组件绘制一个滚动条。return: top, bottom, back, sc, uidtop::上（左）标识bottom::下（右）标识back::背景sc::滚动块add_listbox(self,pos:tuple,width:int=200,height:int=200,font='微软雅黑 12',data=('a','b','c'),bg='#f2f2f2',fg='black',activebg='#e9e9e9',sel='#b4bbea',anchor='nw',command=None)pos::起始位置width::列表框宽度而非框架宽度height::列表框高度而非框架高度font::字体data::选项bg::背景颜色fg::文本颜色activebg::响应鼠标背景色sel::被选中颜色anchor::对齐方式command::回调函数，必须接受一个选项文本参数，这个参数是data中的一个值绘制一个列表框。return: box, funcs, uidbox::绘制列表框功能区的BasicTinUIfuncsfuncs.add(text:str)::在尾部添加新选项funcs.delete(index:int)::删除指定序数的元素，第一个元素序号为0add_canvas(self,pos:tuple,width:int=200,height:int=200,bg='white',outline='#808080',linew=1,scrollbar=False,anchor='nw')pos::位置width::宽度height::高度bg::背景颜色outline::边框颜色linew::边框宽度scrollbar::是否添加滚动条anchor::对齐方位绘制一个画布。return: canvas, re_scrollregion, uidcanvas::画布组件re_scrollregion::刷新滚动范围，标记为“all”add_ui(self,pos:tuple,width:int=200,height:int=200,bg='white',scrollbar=False,region='man',anchor='nw')pos::位置width::宽度height::高度bg::背景颜色scrollbar::是否添加滚动条region::范围控制，手动“man”或自动“auto”anchor::对齐方位添加一个内嵌BasicTinUI。return: ui, re_scrollregion, ui_xml, uidui::BasicTinUI类re_scrollregion::刷新滚动范围，如果region参数为“auto”可忽略ui_xml::该BasicTinUI类的TinUIXml绑定add_pipspager(self,pos:tuple,width:int=200,height:int=200,bg='#f3f3f3',fg='#898989',buttonbg='#f8f8f8',num:int=2)pos::位置width::主视图宽度height::主视图高度bg::背景颜色fg::按钮和导航栏前景色buttonbg::按钮背景颜色num::视图数量绘制一个横向翻页视图。return: uilist, dotlist, move_to, uiduilist::视图列表结构。[(id-1,tinui-1,tinuixml-1),...]dotlist::导航栏列表结构。[dot_id-1,...]move_to::需要一个数字参数num，转到第num个视图，第一个视图num为0add_notebook(self,pos:tuple,width:int=400,height:int=400,color='#f3f3f3',fg='#5d5d5d',bg='#f3f3f3',activefg='#727272',activebg='#eaeaea',onfg='#1a1a1a',onbg='#f9f9f9')pos::位置width::页面宽度height::页面高度color::视图背景色fg::滚动条、文本颜色bg::标签栏标签颜色activefg::鼠标进入时提示色activebg::鼠标进入时提示色onfg::被点击时激活色onbg::被点击时激活色绘制一个标签栏视图。return: tbu, scro, back, notebook, uidtbu::标签栏BasicTinUIscro::滚动条TinUI返回值back::背景元素notebook::TinUINum函数结构体notebook.addpage(title,flag=None,scrollbar=False,cancancel=True)->flagtitle标签栏标签标题flag标识符，如果没有给定，会自动生成并返回scrollbar是否使用TinUI，默认BasicTinUIcancancel该页面是否能被删除notebook.showpage(flag)flag需要显示的页面的标识符notebook.deletepage(flag)flag需要删除的页面的标识符notebook.getuis(flag)->(tinui,uixml,uiid)flag页面标识符。返回TinUI组件、TinUIXml绑定、组件的画布对象notebook.gettitles(flag)->(title,cb,bu)flag页面标识符。返回标题tbu对象、删除键tbu对象、标签tbu对象notebook.getvdic()->vdict返回页面字典notebook.gettbdict()->tbdict返回标签栏字典notebook.cannew(can=False,newfunc=None)can是否响应&显示新界面按钮newfunc响应函数，如果为None则不执行notebook.newtitle(flag,title_text='')flag需要更换标题的页面的标识符title_text新标题文本add_ratingbar(self,pos:tuple,fg='#585858',bg='#f3f3f3',onfg='#3041d8',onbg='#3041d8',r=10,num:int=5,linew:int=10,command=None)pos::位置fg::边框颜色bg::星级色onfg::激活时星级边框onbg::激活时星级色r::星级半径num::总共的星级数量linew::每一行有多少的星级command::回调函数，必须接受一个参数，星级个数（1~...）绘制一个评星级控件。return: bars, uidbars::评星级元素列表当只选定一个星级，再次选择第一个星级时，取消选择，command个数为0add_radiobox(self,pos:tuple,fontfg='black',font='微软雅黑 12',fg='#8b8b8b',bg='#ededed',activefg='#898989',activebg='#e5e5e5',onfg='#3041d8',onbg='#ffffff',content:tuple=('1','','2'),padx=10,pady=5,command=None)pos::位置fontfg::文本颜色fg::标识符边框颜色bg::标识符背景颜色activefg::鼠标进入标识符边框颜色activebg::鼠标进入标识符背景颜色onfg::选定标识符边框颜色onbg::选定标识符背景颜色content::选择文本内容。如果为空字符串则代表换行padx::水平间距pady::行间距command::回调函数，必须接受一个参数，所选选项的文本绘制一个单选组控件。return: boxes, uidadd_notecard(self,pos:tuple,title='note',text='note text\nmain content',tfg='black',tbg='#fbfbfb',fg='black',bg='#f4f4f4',sep='#e5e5e5',width=200,font='微软雅黑 12')pos::位置title::标题文本text::内容文本tfg::标题文本颜色tbg::标题背景色fg::内容文本颜色bg::内容背景色sep::边框、分割线颜色width::文本宽度font::字体绘制一个可拖动的便笺。return: toptext, content, uidtoptext::标题文本content::内容文本add_pivot(self,pos:tuple,fg='#959595',bg='',activefg='#525252',activecolor='#5969e0',content=(('a-title','tag1'),('b-title','tag2'),'',('c-title','tag3')),font='微软雅黑 16',padx=10,pady=10,command=None)pos::位置fg::字体颜色bg::保留参数，忽略activefg::字体激活颜色activecolor::提示色content::内容，（文本，标签）font::字体padx::横方向间距pady::纵方向间距command::响应函数，必须接受一个参数，所选选项的标签绘制一个支点标题。return: texts, uidadd_button2(self,pos:tuple,text:str,fg='#1b1b1b',bg='#fbfbfb',line='#CCCCCC',linew=1,activefg='#5d5d5d',activebg='#f5f5f5',activeline='#e5e5e5',font=('微软雅黑',12),command=None,anchor='nw')pos::位置text::标题文字fg::文字颜色bg::按钮颜色line::边框颜色linew::边框宽度activefg::响应鼠标的文本颜色activebg::响应鼠标的按钮颜色activeline::响应鼠标的边框颜色font::字体名称+大小command::绑定的函数。该函数必须要有event参数，因为TinUI的按钮会传递点击事件的eventanchor::对齐方向绘制一个圆角按钮。return: button, back, outline, funcs, uidbutton::按钮文本back::背景元素outline::边框元素funcsfuncs.change_command(new_func)new_func切换的新函数funcs.disable(fg='#9d9d9d',bg='#f5f5f5')禁用按钮funcs.active()激活按钮add_expander(self,pos:tuple,title='expand content',tfg='black',tbg='#fbfbfb',bg='#f4f4f4',sep='#e5e5e5',width=200,height=200,scrollbar=False,font='微软雅黑 12')pos::位置title::标题tfg::标题颜色tbg::标题背景色bg::UI颜色sep::大背景色、分割线颜色width::控件宽度，文本宽度为width-30height::UI高度scrollbar::是否添加滚动条（是否使用TinUI）font::标题字体绘制一个可折叠UI。return: toptext, ui, ux, uidtoptext::标题文本ui::BasicTinUI或TinUIux::绑定到UI的TinUIXmladd_waitframe(self,pos:tuple,width=300,height=300,fg='#e0e0e0',bg='#ececee')pos::位置width::宽度height::盖度fg::前景色bg::背景色绘制一个元素等待框。return: frame, itemfg, itembg, funcs, uidframe::元素框控件（BasicTinUI）itemfg::标识元素1itembg::标识元素2funcsfuncs.start()::开启等待覆盖fucns.end()::结束等待覆盖add_listview(self,pos:tuple,width=300,height=300,linew=80,bg='#f3f3f3',activebg='#eaeaea',oncolor='#3041d8',scrobg='#f8f8f8',scroc='#999999',scrooc='#89898b',num=5,command=None)pos::位置width::宽度height::高度linew::单元素高度bg::背景色activebg::响应鼠标提示色oncolor::选中提示色scrobg::滚动条背景色scroc::滚动条颜色scrooc::滚动条提示色num::元素数量command::选定时响应函数，需要一个参数：选中项的位次，从0开始绘制一个列表视图。return: ui, scro, items, uidui::列表框架BasicTinUIscro::滚动条返回值，add_scrollbaritems::元素列表，每个元素为ui返回值，add_uiadd_treeview(self,pos:tuple,fg='#1a1a1a',bg='#f3f3f3',onfg='#1a1a1a',onbg='#eaeaea',oncolor='#3041d8',signcolor='#8a8a8a',width=200,height=300,font='微软雅黑 12',content=(('one',('1','2','3')),'two',('three',('a',('b',('b1','b2','b3')),'c')),'four'),command=None)pos::位置fg::文本颜色bg::背景色onfg::选中时文本颜色onbg::选中时元素背景色oncolor::标识符颜色signcolor::滚动条提示色width::宽度height::高度font::字体content::内容数据。(一级,一级,(一级,(二级)),一级)可嵌套command::回调函数，需要一个参数：选中项id的级次从属列表绘制一个树状图。return: items, items_dict, box, uiditems::所有元素id对应的文本id、背景id，以及可能的伸缩提示文本id的字典items_dict::所有含子级元素id对应下一级id的字典box::作为树状图父组件的BasicTinUIadd_image(self,pos:tuple,width=None,height=None,state='fill',imgfile=None)pos::位置width::宽度（默认为图片宽度）height::高度（默认为图片高度）state::尺寸状态（none左上角裁剪，fill填充，uniform等比缩放）imgfile::图片文件，支持静态gif和png绘制一个静态图片。return: imgimg::图片画布对象，相当于大多数的uidadd_togglebutton(self,pos:tuple,text:str,fg='#1b1b1b',bg='#fbfbfb',line='#CCCCCC',linew=1,activefg='#f3f4fd',activebg='#3041d8',activeline='#5360de',font=('微软雅黑',12),command=None,anchor='nw')pos::位置text::文本fg::文本颜色bg::背景色line::边框颜色linew::边框宽度activefg::开启状态文本颜色activebg::开启状态背景色activeline::开启状态边框颜色font::字体command::响应函数，接受一个参数：True开启，False关闭anchor::对齐方向绘制一个状态开关按钮。return: button, back, outline, funcs, uidbutton::文本元素back::背景元素outline::边框元素funcsfuncs.change_command()::更换响应函数funcs.disable(fg='#9d9d9d',bg='#f5f5f5')::禁用funcs.active()::启用add_swipecontrol(self,pos:tuple,text:str='',height=50,width=400,fg='#1a1a1a',bg='#f3f3f3',line='#fbfbfb',data:dict=,),'right':(,)},font=('微软雅黑',12))pos-位置text-文本height-高度width-宽度fg-文本颜色bg-背景色line-边框颜色data-滑动操作元素参数data结构：{'left':({'text':'文本','fg':'文本颜色','bg':'背景颜色',},...,),'right':({'text':'文本',},...,)}其中，字典键值left表示往右滑动显示的左边元素，right表示往左滑动显示的右边元素。两者皆可选。
一侧元素以一个数组表示，一个及以上，不超过六个。每个元素以字典表示，文本必选，颜色有默认值。font-字体绘制一个滑动控件。return: back, backitemback::容器BasicTinUIbackitem::控件的画布元素add_passwordbox(self,pos:tuple,width:int,fg='#606060',bg='#f6f6f6',activefg='black',activebg='white',insert='#808080',font=('微软雅黑',12),linew=3,outline='#868686',onoutline='#3041d8',anchor='nw')pos-位置width-宽度fg-文本颜色bg-背景色activefg-响应时文本颜色activebg-响应时背景颜色insert-光标颜色font-字体linew-边框宽度outline-边框颜色onoutline-响应时边框颜色anchor-对齐方向绘制一个密码输入框。return: entry, funcs, uidadd_picker(self,pos:tuple,height=250,fg='#1b1b1b',bg='#fbfbfb',outline='#ececec',activefg='#1b1b1b',activebg='#f6f6f6',onfg='#eaecfb',onbg='#3748d9',font=('微软雅黑',10),text=(('year',60),('season',100),),data=(('2022','2023','2024'),('spring','summer','autumn','winter')),tran='#01FF11',command=None)pos-位置height-选择框高度fg-文本颜色bg-背景色outline-边框色activefg-选择时文本颜色activebg-选择时背景颜色onfg-选定时文本颜色onbg-选定时背景颜色font-字体text-文本内容，需要与data对应。((选值文本,元素宽度),...)data-选值内容，需要与text对应tran-透明处理规避颜色command-响应接受函数。需要接受一个参数：所有选值列表，全被选定时触发绘制一个滚动选值框。return: picker, bar, texts, pickerbars, uidpicker::选择器所在的窗口bar::选择器所在的BasicTinUItexts::文本元素列表pickerbars::元素选择BasicTinUI列表Class: BasicTinUITinUI的基础类，仅提供组件绘制。BasicTinUI的用法与TinUI完全一致，虽然TinUI基于BasicTinUI，但是TinUI更适合作为窗口主组件，以下是二者区别：项目BasicTinUITinUITinUI绘制组件√√自动刷新×√滚动条支持×√窗口主组件×√主窗口×√区域渲染组件√×Class: TinUINumTinUI中使用数据结构载体，不需要知道。Class: FuncListTinUI控件使用的方法列表，既可以当做列表获取返回函数，也可以作为函数整体对象执行单个方法。以button为例：使用button的禁用方法（已获取funcs返回值）。既可以使用funcs[1]()，也可以使用funcs.disable()。方便使用。本文档中比较久之前的函数返回调用，沿用最初列表式结构说明，具体返回的FuncList类见源码。Class: TinUIThemeTinUI自定义配色类。可实例化后直接应用于TinUIXml。classTinUITheme:'''专门为特有样式的TinUI或BasicTinUI提供的类适用于重写样式配色的TinUI或BasicTinUI该类允许重写样式的TinUI或BasicTinUI使用TinUIXml'''def__init__(self,ui,name='tinui-theme'):#ui为TinUI框架使用示例见开源TinUI代码库见theme\themelight.py等。Class: TinUIWidget创建一个含单个元素控件的BasicTinUI组件。classTinUIWidget(BasicTinUI):'''提供含单个元素控件的TinUI控件，用来在普通tkinter组件中使用'''def__init__(self,master,widget_name='ui',**kw):BasicTinUI.__init__(self,master,**kw)self.func=eval('self.add_'+widget_name)self.width=Noneself.height=Noneget_size()获取元素控件尺寸。load(*args,**kw)根据初始化的widget_name，创建元素控件。reupdate()更新尺寸信息，但不会更改控件大小。Class: TinUIXml使用xml语言来绘制TinUI组件，当然，也包括BasicTinUI。当前，menubar,tooltip等组件不支持使用xml布局。classTinUIXml():#TinUI的xml渲染方式'''为TinUI提供更加方便的平面方式，使用xmlTinUITheme基类无法直接使用，只能够重写TinUI或BasicTinUI的样式后才能够使用，参考 /theme 中的样式重写范例'''def__init__(self,ui:Union[BasicTinUI,TinUITheme]):#BasicTinUI包括TinUI#TinUITheme为样式基础类，继承类也可基础类变量self.funcs::xml中涉及到的函数通常用与command参数。self.datas::xml中使用的特殊数据结构通常用于data等参数，但若数据结构不复杂，可以直接在xml中用字符表示。如 '200'，'("1","2","3","4")'等数据结构可以直接在字符串中表示。self.tags::内部组件tag集合用于有目标文本的xml-TinUI组件元素的回调。如<button text='test'>bu</button>可以使用*.tags['bu']获取原组件返回值。基本规则以下是使用TinUIXml中xml字符串的若干规定：根元素必须是<tinui>行元素必须是<line>根元素的直接子集不能有除了行元素的其它元素行元素可以嵌套可以如下写法：<tinui><line><buttontext='one'></button></line><line><buttontext='two'></button><line><buttontext='three'></button></line><line><buttontext='four'></button></line><buttontext='five'></button></line></tinui>所有xml使用的函数需要使用字符串中表述为self.funcs[...]即：<buttontext='one'command='self.funcs["funcstion"]'></button>若需要，如【5】中类似地使用self.datas[...]若需要使用整数定义宽度参数等，也如同width='200'使用字体使用如font="微软雅黑 12"的写法基本语法使用TinUIXml，有特殊的语法和协定，详情见CSDN文章：tkinter-TinUI使用xml编写界面。基础函数loadxml(xml:str)xml::xml语言通过一定规范的Xml字符串来对TinUI（BasicTinUI）进行渲染操作。environment(dict_item:dict)dict_item::一个字典，建议是globals()或locals()根据本地变量，快速导入funcs和datas。但这样会缺少规范性。clean()清空绑定的TinUI或BasicTinUI。特殊规则组件部分组件的xml写法有特殊规定。backlabelframe部分组件的特殊规定，详情见CSDN文章：tkinter-TinUI使用xml的特殊组件。新想法发送issue至GitHub-TinUI储存库发送邮件至tsan-zane@outlook.com或smart-space@qq.com