tkinter.ttk
---Tk主题小工具¶
源代码: Lib/tkinter/ttk.py
这个 tkinter.ttk
模块提供对tk 8.5中介绍的tk主题小部件集的访问。如果没有根据tk 8.5编译python,那么在 Tile 已安装。前一种使用tk 8.5的方法提供了额外的好处,包括x11下的抗锯齿字体渲染和窗口透明度(需要x11上的合成窗口管理器)。
的基本理念 tkinter.ttk
参见
- Tk Widget Styling Support
介绍对tk的主题化支持的文档
使用TTK¶
要开始使用TTK,请导入其模块:
from tkinter import ttk
要覆盖基本的tk小部件,导入应遵循tk导入::
from tkinter import *
from tkinter.ttk import *
这个代码导致 tkinter.ttk
小部件 (Button
, Checkbutton
, Entry
, Frame
, Label
, LabelFrame
, Menubutton
, PanedWindow
, Radiobutton
, Scale
和 Scrollbar
)自动替换tk小部件。
这直接得益于使用新的小部件,它可以在不同的平台上提供更好的外观和感觉;但是,替换的小部件并不完全兼容。主要的区别是,小部件选项(如“fg”、“bg”和其他与小部件样式相关的选项)不再出现在TTK小部件中。相反,使用 ttk.Style
类以改进样式效果。
参见
- Converting existing applications to use Tile widgets
一本专著(使用tcl术语),介绍移动应用程序以使用新的小部件时通常遇到的差异。
TTK控件¶
TTK附带18个小部件,其中12个已经存在于Tkinter中: Button
, Checkbutton
, Entry
, Frame
, Label
, LabelFrame
, Menubutton
, PanedWindow
, Radiobutton
, Scale
, Scrollbar
和 Spinbox
. 另外六个是新的: Combobox
, Notebook
, Progressbar
, Separator
, Sizegrip
和 Treeview
. 它们都是 Widget
.
使用TTK小部件可以改善应用程序的外观和感觉。如上所述,在样式的编码方式上存在差异。
TK代码:
l1 = tkinter.Label(text="Test", fg="black", bg="white")
l2 = tkinter.Label(text="Test", fg="black", bg="white")
TTK码:
style = ttk.Style()
style.configure("BW.TLabel", foreground="black", background="white")
l1 = ttk.Label(text="Test", style="BW.TLabel")
l2 = ttk.Label(text="Test", style="BW.TLabel")
有关的详细信息 TtkStyling, 见 Style
类文档。
小装置¶
ttk.Widget
定义由tk主题的小部件支持的标准选项和方法,不应该直接实例化。
标准选项¶
所有的 ttk
小部件接受以下选项:
期权
描述
类
指定窗口类。类用于在选项数据库中查询窗口的其他选项、确定窗口的默认bindtags以及选择小部件的默认布局和样式。此选项是只读的,只能在创建窗口时指定。
光标
指定用于小部件的鼠标光标。如果设置为空字符串(默认),则为父窗口小部件继承光标。
焦点焦点
确定在键盘遍历期间窗口是否接受焦点。返回0、1或空字符串。如果返回0,则表示在键盘遍历期间应完全跳过窗口。如果为1,则表示只要窗口可见,它就应该接收输入焦点。空字符串意味着遍历脚本决定是否将焦点放在窗口上。
风格
可用于指定自定义小部件样式。
可滚动小部件选项¶
滚动条控制的小部件支持以下选项。
期权
描述
XScRelp命令
用于与水平滚动条通信。
当小部件窗口中的视图更改时,小部件将基于scrollcommand生成tcl命令。
通常,此选项由方法组成
Scrollbar.set()
一些滚动条。这将使滚动条在窗口中的视图更改时更新。yScRelp命令
用于与垂直滚动条通信。有关更多信息,请参见上文。
标签选项¶
标签、按钮和其他类似按钮的小部件支持以下选项。
期权
描述
文本
指定要在小部件中显示的文本字符串。
文本变量
指定将使用其值代替文本选项资源的名称。
下划线
如果设置,则指定要在文本字符串中加下划线的字符的索引(从0开始)。下划线字符用于记忆激活。
形象
指定要显示的图像。这是一个包含1个或多个元素的列表。第一个元素是默认的图像名称。如果statespec/值对的序列由
Style.map()
,指定当小部件处于特定状态或状态组合时要使用的不同图像。列表中的所有图像都应具有相同的大小。复合
指定在同时存在文本和图像选项的情况下,如何相对于文本显示图像。有效值为:
文本:仅显示文本
图像:仅显示图像
上、下、左、右:分别在文本的上方、下方、左侧或右侧显示图像。
无:默认值。显示图像(如果存在),否则显示文本。
宽度
如果大于零,指定在字符宽度中为文本标签分配多少空间;如果小于零,则指定最小宽度。如果为零或未指定,则使用文本标签的自然宽度。
兼容性选项¶
期权
描述
状态
可以设置为“正常”或“禁用”,以控制“禁用”状态位。这是一个只写选项:设置它会更改小部件状态,但是
Widget.state()
方法不影响此选项。
控件状态¶
小部件状态是独立状态标志的位图。
旗
描述
积极的
鼠标光标在小部件上,按下鼠标按钮将导致某些操作发生。
残疾人
程序控制下禁用小部件
集中
小部件具有键盘焦点
按下
小部件正在被按下
挑选出来的
“on”、“true”或“current”用于“checkbuttons”和“radiobuttons”等内容
背景
Windows和Mac具有“活动”或前台窗口的概念。这个 背景 在后台窗口中为小部件设置状态,并为前台窗口中的小部件清除状态。
只读
小部件不允许用户修改
交替的
特定于小部件的备用显示格式
无效
小部件的值无效
状态规范是一系列状态名,可以选择在其前面加一个感叹号,表示位已关闭。
ttk.Widget¶
除了下述方法外, ttk.Widget
支持这些方法 tkinter.Widget.cget()
和 tkinter.Widget.configure()
.
- class tkinter.ttk.Widget¶
- identify(x, y)¶
返回位置处元素的名称 x y ,如果点不在任何元素中,则为空字符串。
x 和 y 是相对于小部件的像素坐标。
- instate(statespec, callback=None, *args, **kw)¶
测试小部件的状态。如果未指定回调,则返回
True
如果小部件状态匹配 状态图 和False
否则。如果指定了回调,则如果小部件状态匹配,则使用参数调用回调 状态图 .
- state(statespec=None)¶
修改或查询小部件状态。如果 状态图 指定,根据它设置小部件状态并返回新的 状态图 指示更改了哪些标志。如果 状态图 未指定,返回当前启用的状态标志。
状态图 通常是列表或元组。
组合框¶
这个 ttk.Combobox
小部件将文本字段与值的下拉列表组合在一起。这个小部件是 Entry
.
除了继承自 Widget
: Widget.cget()
, Widget.configure()
, Widget.identify()
, Widget.instate()
和 Widget.state()
以及以下继承自 Entry
: Entry.bbox()
, Entry.delete()
, Entry.icursor()
, Entry.index()
, Entry.insert()
, Entry.selection()
, Entry.xview()
,它还有一些其他方法,如 ttk.Combobox
.
选项¶
此小部件接受以下特定选项:
期权
描述
出口选择
布尔值。如果设置,小部件选择将链接到窗口管理器选择(例如,可以通过调用misc.selection_get返回)。
证明正当
指定文本在小部件中的对齐方式。“左”、“中”或“右”之一。
高度
以行为单位指定弹出列表框的高度。
后命令
在显示值之前立即调用的脚本(可能已用misc.register注册)。它可以指定要显示的值。
状态
“正常”、“只读”或“禁用”之一。在“只读”状态下,不能直接编辑值,用户只能从下拉列表中选择值。在“正常”状态下,文本字段可直接编辑。在“禁用”状态下,不可能进行交互。
文本变量
指定其值链接到小部件值的名称。每当与该名称关联的值更改时,小部件值就会更新,反之亦然。见
tkinter.StringVar
.价值观
指定要在下拉列表框中显示的值列表。
宽度
指定一个整数值,以小部件字体的平均大小字符表示输入窗口的所需宽度。
虚拟事件¶
组合框小部件生成一个 <<ComboboxSelected>> 用户从值列表中选择元素时的虚拟事件。
ttk.Combobox¶
纺丝箱¶
这个 ttk.Spinbox
控件是一个 ttk.Entry
增加和减少箭头。它可以用于字符串值的数字或列表。这个小部件是 Entry
.
除了继承自 Widget
: Widget.cget()
, Widget.configure()
, Widget.identify()
, Widget.instate()
和 Widget.state()
以及以下继承自 Entry
: Entry.bbox()
, Entry.delete()
, Entry.icursor()
, Entry.index()
, Entry.insert()
, Entry.xview()
,它还有一些其他方法,如 ttk.Spinbox
.
选项¶
此小部件接受以下特定选项:
期权 |
描述 |
---|---|
从 |
浮动值。如果设置,这是递减按钮将递减到的最小值。必须拼写为 |
到 |
浮动值。如果设置,这是递增按钮将递增的最大值。 |
增量 |
浮动值。指定递增/递减按钮更改值的量。默认为1.0。 |
价值观 |
字符串或浮点值的序列。如果指定,递增/递减按钮将按此顺序循环显示项目,而不是递增或递减数字。 |
包 |
布尔值。如果 |
格式 |
字符串值。这指定由递增/递减按钮设置的数字格式。它的格式必须为“%w.p f”,其中w是值的填充宽度,p是精度,而“%”和“f”是文字。 |
命令 |
python可调用。无论何时按下递增或递减按钮,都将不带参数调用。 |
虚拟事件¶
spinbox小部件生成一个 <<Increment>> 当用户按下“向上”时的虚拟事件,以及 <<Decrement>> 当用户按下<down>时发生虚拟事件。
ttk.Spinbox¶
笔记本¶
TTK笔记本小部件管理一组窗口,一次显示一个窗口。每个子窗口都与一个选项卡关联,用户可以选择该选项卡来更改当前显示的窗口。
选项¶
此小部件接受以下特定选项:
期权
描述
高度
如果存在且大于零,则指定窗格区域的所需高度(不包括内部填充或制表符)。否则,将使用所有窗格的最大高度。
衬垫
指定要在笔记本外部添加的额外空间量。填充是一个长达四个长度规格的列表,从左上到右下。如果指定的元素少于四个,则底部默认为顶部,右侧默认为左侧,顶部默认为左侧。
宽度
如果存在且大于零,则指定窗格区域的所需宽度(不包括内部填充)。否则,将使用所有窗格的最大宽度。
Tab期权¶
选项卡还有特定选项:
期权
描述
状态
“正常”、“禁用”或“隐藏”。如果“禁用”,则选项卡不可选。如果“隐藏”,则不显示选项卡。
粘性的
指定子窗口在窗格区域中的位置。值是包含零个或多个字符“n”、“s”、“e”或“w”的字符串。每个字母指的是子项车窗将贴在的一侧(北、南、东或西),根据
grid()
几何管理器。衬垫
指定要在笔记本和此窗格之间添加的额外空间量。语法与此小部件使用的选项填充相同。
文本
指定要在选项卡中显示的文本。
形象
指定要在选项卡中显示的图像。请参见中描述的选项图像
Widget
.复合
指定在同时存在选项文本和图像的情况下,如何相对于文本显示图像。参见 Label Options 法律价值。
下划线
指定要在文本字符串中加下划线的字符的索引(从0开始)。带下划线的字符用于助记符激活,如果
Notebook.enable_traversal()
被称为。
选项卡标识符¶
标签有几种方法 ttk.Notebook
可采用以下任何形式:
介于零和制表符数目之间的整数
子窗口的名称
表格“@x,y”的位置说明,用于标识选项卡
文本字符串“current”,用于标识当前选定的选项卡
文本字符串“end”,返回选项卡数(仅对
Notebook.index()
)
虚拟事件¶
这个小部件生成一个 <<NotebookTabChanged>> 选择新选项卡后的虚拟事件。
ttk.Notebook¶
- class tkinter.ttk.Notebook¶
- add(child, **kw)¶
将新选项卡添加到笔记本。
如果窗口当前由笔记本管理但被隐藏,则它将恢复到以前的位置。
见 Tab Options 有关可用选项的列表。
- forget(tab_id)¶
删除由指定的选项卡 tab_id ,取消映射和取消管理关联的窗口。
- identify(x, y)¶
返回位置处的tab元素的名称 x , y 或空字符串(如果没有)。
- index(tab_id)¶
返回由指定的选项卡的数字索引 tab_id 或选项卡总数,如果 tab_id 是字符串“end”。
- insert(pos, child, **kw)¶
在指定位置插入窗格。
pos 是字符串“end”、整数索引或托管子级的名称。如果 小孩 已由笔记本管理,将其移动到指定位置。
见 Tab Options 有关可用选项的列表。
- select(tab_id=None)¶
选择指定的 tab_id .
将显示关联的子窗口,并取消映射以前选择的窗口(如果不同)。如果 tab_id 如果省略,则返回当前所选窗格的小部件名称。
- tab(tab_id, option=None, **kw)¶
查询或修改特定 tab_id .
如果 kw 如果未给定,则返回选项卡选项值的字典。如果 option 如果指定,则返回 option . 否则,将选项设置为相应的值。
- tabs()¶
返回笔记本管理的窗口列表。
- enable_traversal()¶
为包含此笔记本的顶级窗口启用键盘遍历。
这将扩展包含笔记本的顶级窗口的绑定,如下所示:
Control-Tab :选择当前所选选项卡之后的选项卡。
Shift-Control-Tab :选择当前所选选项卡之前的选项卡。
Alt-K 哪里 K 是任何选项卡的助记符(带下划线),将选择该选项卡。
可以为遍历启用单个顶级中的多个笔记本,包括嵌套的笔记本。但是,只有当所有窗格都具有作为主控形状的笔记本时,笔记本遍历才能正常工作。
进度条¶
这个 ttk.Progressbar
小部件显示长期运行操作的状态。它可以在两种模式下工作:1)显示相对于要完成的总工作量已完成的量的确定模式和2)提供动画显示的不确定模式,以让用户知道工作正在进行。
选项¶
此小部件接受以下特定选项:
期权
描述
东方的
“水平”或“垂直”之一。指定进度条的方向。
长度
指定进度条长轴的长度(水平时为宽,垂直时为高)。
模式
“确定的”或“不确定的”之一。
最大限度
指定最大值的数字。默认为100。
价值
进度条的当前值。在“确定”模式下,这表示已完成的工作量。在“不确定”模式下,它被解释为模 最大限度 ;也就是说,当进度条的值增加时,进度条完成一个“循环”。 最大限度 .
变量
链接到选项值的名称。如果指定,则在修改进度条时,进度条的值将自动设置为此名称的值。
阶段
只读选项。当该小部件的值大于0并且在确定模式下小于最大值时,该小部件会定期增加该选项的值。当前主题可以使用此选项来提供其他动画效果。
ttk.Progressbar¶
- class tkinter.ttk.Progressbar¶
- start(interval=None)¶
开始自动增量模式:调度调用
Progressbar.step()
每一个 间隔 毫秒。如果省略, 间隔 默认为50毫秒。
- step(amount=None)¶
进度条值的增量为 数量 .
数量 如果省略,则默认为1.0。
- stop()¶
停止自动递增模式:取消由
Progressbar.start()
对于此进度条。
分离器¶
这个 ttk.Separator
小部件显示水平或垂直分隔条。
除了继承自 ttk.Widget
.
选项¶
此小部件接受以下特定选项:
期权
描述
东方的
“水平”或“垂直”之一。指定分隔符的方向。
大握柄¶
这个 ttk.Sizegrip
小部件(也称为成长框)允许用户通过按下和拖动夹点来调整包含顶层窗口的大小。
除了继承自 ttk.Widget
.
平台特定注释¶
在MacOSX上,默认情况下,顶级窗口自动包含内置大小的夹点。添加一个
Sizegrip
是无害的,因为内置的握把只会掩盖小部件。
漏洞¶
如果指定了包含顶层的位置相对于屏幕的右侧或底部(例如…),则
Sizegrip
小部件不会调整窗口大小。这个小部件只支持“东南”调整大小。
树形图¶
这个 ttk.Treeview
小部件显示项目的层次集合。每个项目都有一个文本标签、一个可选图像和一个可选的数据值列表。数据值显示在树标签后的连续列中。
通过设置widget选项,可以控制数据值的显示顺序。 displaycolumns
. 树小部件还可以显示列标题。可以通过小部件选项列中列出的数字或符号名称访问列。见 Column Identifiers .
每个项目都由唯一的名称标识。如果调用者没有提供项目ID,该小部件将生成它们。有一个可分辨的根项,名为 {{}}
.根项本身不显示;其子项显示在层次结构的顶层。
每个项还具有标记列表,这些标记可用于将事件绑定与单个项关联,并控制项的外观。
TreeView小部件支持水平和垂直滚动,根据中描述的选项 Scrollable Widget Options 方法 Treeview.xview()
和 Treeview.yview()
.
选项¶
此小部件接受以下特定选项:
期权
描述
柱
列标识符列表,指定列数及其名称。
显示列
列标识符列表(符号索引或整数索引),指定显示的数据列及其显示顺序,或字符串“all”。
高度
指定应可见的行数。注意:请求的宽度由列宽之和决定。
衬垫
指定小部件的内部填充。填充是一个最多包含四个长度规格的列表。
选择模式
控制内置类绑定如何管理选择。“扩展”、“浏览”或“无”之一。如果设置为“扩展”(默认),则可以选择多个项目。如果“浏览”,一次只选择一个项目。如果“无”,则不会更改选择。
请注意,应用程序代码和标记绑定可以根据需要设置选择,而不考虑此选项的值。
显示
包含以下零个或多个值的列表,指定要显示的树元素。
树:在列0中显示树标签。
标题:显示标题行。
默认为“树标题”,即显示所有元素。
Note :column 0始终引用树列,即使未指定show=“tree”。
项目选项¶
可以为insert和item widget命令中的项指定以下项选项。
期权
描述
文本
要为项显示的文本标签。
形象
显示在标签左侧的tk图像。
价值观
与项关联的值列表。
每个项的值数应该与小部件选项列的值数相同。如果值少于列,则假定其余值为空。如果值多于列,则忽略多余的值。
打开
True
/False
指示应显示还是隐藏项的子项的值。标签
与此项目关联的标记列表。
标记选项¶
可以在标记上指定以下选项:
期权
描述
前景
指定文本前景色。
背景
指定单元格或项的背景色。
字体
指定绘制文本时使用的字体。
形象
指定项的图像选项为空时的项图像。
列标识符¶
列标识符采用以下任何形式:
列列表选项中的符号名。
整数n,指定第n个数据列。
n形式的字符串,其中n是整数,指定第n个显示列。
笔记:
项的选项值的显示顺序可能与它们的存储顺序不同。
列0始终引用树列,即使未指定show=“tree”。
数据列号是项目选项值列表的索引;显示列号是显示值的树中的列号。树标签显示在第0列中。如果未设置选项displaycolumns,则数据列n将显示在列n+1中。再一次, column #0 always refers to the tree column .
虚拟事件¶
TreeView小部件生成以下虚拟事件。
事件
描述
<<treeviewsselect>>
每当选择更改时生成。
<<treeviewopen>>
在将焦点项设置为open=true之前生成。
<<treeviewclose>>
仅在将焦点项设置为open=false之后生成。
这个 Treeview.focus()
和 Treeview.selection()
方法可用于确定受影响的一个或多个项目。
ttk.Treeview¶
- class tkinter.ttk.Treeview¶
- bbox(item, column=None)¶
返回指定的绑定框(相对于TreeView小部件的窗口) item 形式(x,y,width,height)。
如果 柱 如果指定,则返回该单元格的边界框。如果 item 不可见(即,如果它是已关闭项的后代或在屏幕外滚动),则返回空字符串。
- get_children(item=None)¶
返回属于的子级列表 item .
如果 item 未指定,返回根子级。
- set_children(item, *newchildren)¶
替换 item 的子项 新生子项 .
有子项在场 item 不存在于 新生子项 与树分离。没有项目 新生子项 可能是 item . 请注意,没有指定 新生子项 导致分离 item 子项们。
- column(column, option=None, **kw)¶
查询或修改指定的 柱 .
如果 kw 如果未给定,则返回列选项值的dict。如果 option 然后指定该值 option 返回。否则,将选项设置为相应的值。
有效的选项/值为:
- 身份证件
返回列名称。这是只读选项。
- 锚定:标准tk锚定值之一。
指定此列中的文本相对于单元格的对齐方式。
- 最小宽度
列的最小宽度(像素)。当小部件调整大小或用户拖动列时,TreeView小部件不会使列小于此选项指定的值。
- 拉伸:
True
/False
指定在调整小部件大小时是否应调整列的宽度。
- 拉伸:
- 宽度:宽度
列的宽度(像素)。
要配置树列,请使用column=“0”调用此列。
- delete(*items)¶
删除所有指定的 项目 以及他们所有的后代。
不能删除根项。
- detach(*items)¶
取消链接所有指定的 项目 从树上。
项目及其所有子代仍然存在,可以在树中的其他点重新插入,但不会显示。
不能分离根项。
- exists(item)¶
返回
True
如果指定 item 存在于树中。
- focus(item=None)¶
如果 item 指定,将焦点项设置为 item . 否则,返回当前焦点项,如果没有,则返回“”。
- heading(column, option=None, **kw)¶
查询或修改指定的 柱 .
如果 kw 如果未给定,则返回标题选项值的dict。如果 option 然后指定该值 option 返回。否则,将选项设置为相应的值。
有效的选项/值为:
- 文本:文本
要在列标题中显示的文本。
- 图像:图像名称
指定要在列标题右侧显示的图像。
- 锚:锚
指定标题文本应如何对齐。标准tk锚定值之一。
- 命令:回调
当按下标题标签时要调用的回调。
若要配置树列标题,请使用column=“0”调用此项。
- identify(component, x, y)¶
返回指定的 成分 根据给出的点 x 和 y ,如果没有,则为空字符串 成分 在那个位置。
- identify_row(y)¶
返回位置处的项的项ID y .
- identify_column(x)¶
返回位置处单元格的数据列标识符 x .
树列的ID 0。
- identify_region(x, y)¶
返回其中之一:
区域
意思
标题
树形标题区域。
分离器
两列标题之间的空格。
树
树木区域。
细胞
一个数据单元。
可用性:tk 8.6。
- identify_element(x, y)¶
返回位置处的元素 x , y .
可用性:tk 8.6。
- index(item)¶
返回的整数索引 item 在其父级的子级列表中。
- insert(parent, index, iid=None, **kw)¶
创建新项并返回新创建项的项标识符。
起源 是父项的项ID,或创建新顶级项的空字符串。 index 是一个整数或值“end”,指定父级子级列表中插入新项的位置。如果 index 小于或等于零,则在开始处插入新节点;如果 index 大于或等于当前子级数,将在末尾插入。如果 iid 指定,用作项目标识符; iid 树中不能已经存在。否则,将生成新的唯一标识符。
见 Item Options 获取可用点的列表。
- item(item, option=None, **kw)¶
查询或修改指定的 item .
如果没有提供任何选项,则返回带有该项的选项/值的dict。如果 option 然后返回该选项的值。否则,将选项设置为 kw .
- move(item, parent, index)¶
移动 item 定位 index 在里面 起源 子项的列表。
将项目移动到其后代之一下是非法的。如果 index 小于或等于零, item 移到开头;如果大于或等于子级的数目,则移到结尾。如果 item 已分离,已重新连接。
- next(item)¶
返回的标识符 item 的下一个兄弟姐妹,或“”if item 是其父级的最后一个子级。
- parent(item)¶
返回的父级的ID item 或者'如果' item 位于层次结构的顶层。
- prev(item)¶
返回的标识符 item 的上一个同级,或“”if item 是其父级的第一个子级。
- reattach(item, parent, index)¶
的别名
Treeview.move()
.
- see(item)¶
确保 item 是可见的。
设置所有 item 的祖先打开选项
True
,并在必要时滚动小部件,以便 item 在树的可见部分内。
- selection()¶
返回选定项的元组。
在 3.8 版更改:
selection()
不再需要参数。要更改选择状态,请使用以下选择方法。
- selection_set(*items)¶
项目 成为新选择。
在 3.6 版更改: 项目 可以作为单独的参数传递,而不仅仅是作为一个元组。
- selection_add(*items)¶
添加 项目 到所选内容。
在 3.6 版更改: 项目 可以作为单独的参数传递,而不仅仅是作为一个元组。
- selection_remove(*items)¶
去除 项目 从所选内容。
在 3.6 版更改: 项目 可以作为单独的参数传递,而不仅仅是作为一个元组。
- selection_toggle(*items)¶
切换中每个项的选择状态 项目 .
在 3.6 版更改: 项目 可以作为单独的参数传递,而不仅仅是作为一个元组。
- set(item, column=None, value=None)¶
使用一个参数,返回指定的列/值对的字典 item . 使用两个参数,返回指定的 柱 . 使用三个参数,设置给定的 柱 在给定的 item 到指定的 value .
- tag_bind(tagname, sequence=None, callback=None)¶
为给定事件绑定回调 序列 给标签 标记名 . 当一个事件传递到一个项目时,将调用该项目的每个标记选项的回调。
- tag_configure(tagname, option=None, **kw)¶
查询或修改指定的 标记名 .
如果 kw 未给定,返回选项设置的dict 标记名 .如果 option 如果指定了,则返回 option 对于指定的 标记名 . 否则,将选项设置为给定的 标记名 .
- tag_has(tagname, item=None)¶
如果 item 指定,根据指定的 item 有给定的 标记名 . 否则,返回具有指定标记的所有项的列表。
可用性:tk 8.6
- xview(*args)¶
查询或修改TreeView的水平位置。
- yview(*args)¶
查询或修改TreeView的垂直位置。
TTK造型¶
每个小部件 ttk
指定了一种样式,该样式指定组成小部件的元素集及其排列方式,以及元素选项的动态和默认设置。默认情况下,样式名与小部件的类名相同,但它可能被小部件的样式选项覆盖。如果您不知道小部件的类名,请使用该方法 Misc.winfo_class()
(someWidget.winfo_class())。
参见
- Tcl'2004 conference presentation
本文档介绍主题引擎的工作原理
- class tkinter.ttk.Style¶
此类用于操作样式数据库。
- configure(style, query_opt=None, **kw)¶
在中查询或设置指定选项的默认值 风格 .
每个密钥 kw 是一个选项,每个值都是一个字符串,用于标识该选项的值。
例如,要将每个默认按钮更改为带有一些填充和不同背景颜色的平面按钮,请执行以下操作:
from tkinter import ttk import tkinter root = tkinter.Tk() ttk.Style().configure("TButton", padding=6, relief="flat", background="#ccc") btn = ttk.Button(text="Sample") btn.pack() root.mainloop()
- map(style, query_opt=None, **kw)¶
在中查询或设置指定选项的动态值 风格 .
每个密钥 kw 是一个选项,每个值都应该是一个列表或一个元组(通常),其中包含按元组、列表或某些其他首选项分组的Statespec。Statespec是一个或多个状态的组合,然后是一个值。
一个例子可能使其更易于理解:
import tkinter from tkinter import ttk root = tkinter.Tk() style = ttk.Style() style.map("C.TButton", foreground=[('pressed', 'red'), ('active', 'blue')], background=[('pressed', '!disabled', 'black'), ('active', 'white')] ) colored_btn = ttk.Button(text="Test", style="C.TButton").pack() root.mainloop()
请注意,如果将某个选项的(状态、值)序列的顺序更改为
[('active', 'blue'), ('pressed', 'red')]
例如,在前景选项中,当小部件处于活动或按下状态时,结果将是蓝色前景。
- lookup(style, option, state=None, default=None)¶
返回为指定的值 option 在里面 风格 .
如果 state 是指定的,它应该是一个由一个或多个状态组成的序列。如果 default 参数已设置,如果找不到选项的规范,它将用作回退值。
检查按钮默认使用的字体:
from tkinter import ttk print(ttk.Style().lookup("TButton", "font"))
- layout(style, layoutspec=None)¶
为给定控件定义控件布局 风格 .如果 布局规格 如果省略,则返回给定样式的布局规范。
布局规格 如果指定,则应为列表或某些其他序列类型(不包括字符串),其中每个项应为元组,第一个项为布局名称,第二个项应具有中描述的格式。 Layouts .
要理解格式,请参见以下示例(它不打算做任何有用的事情)::
from tkinter import ttk import tkinter root = tkinter.Tk() style = ttk.Style() style.layout("TMenubutton", [ ("Menubutton.background", None), ("Menubutton.button", {"children": [("Menubutton.focus", {"children": [("Menubutton.padding", {"children": [("Menubutton.label", {"side": "left", "expand": 1})] })] })] }), ]) mbtn = ttk.Menubutton(text='Text') mbtn.pack() root.mainloop()
- element_create(elementname, etype, *args, **kw)¶
在给定的当前主题中创建一个新元素 埃特佩 它应该是“image”、“from”或“vsapi”。后者仅在用于Windows XP和Vista的tk 8.6a中可用,此处不作说明。
如果使用“图像”, args 应包含默认图像名称,后跟statespec/值对(这是imagespec),以及 kw 可能有以下选项:
- 边框=填充
padding是最多四个整数的列表,分别指定左边框、上边框、右边框和下边框。
- 身高=身高
指定元素的最小高度。如果小于零,则默认使用基础图像的高度。
- 填充=填充
指定元素的内部填充。如果未指定,则默认为border的值。
- 粘性=规格
指定如何将图像放置在最终地块中。spec包含零个或多个字符“n”、“s”、“w”或“e”。
- 宽度=宽度
指定元素的最小宽度。如果小于零,则将基础图像的宽度用作默认值。
如果“From”用作 埃特佩 ,
element_create()
将复制现有元素。 args 应包含将从中复制元素的ThemeName,也可以包含要从中复制的元素。如果未指定要从中复制的元素,则将使用空元素。 kw 被丢弃。
- element_names()¶
返回当前主题中定义的元素列表。
- element_options(elementname)¶
返回的列表 元素名称 的选择。
- theme_create(themename, parent=None, settings=None)¶
创建新主题。
如果 主题名 已经存在。如果 起源 如果指定,则新主题将从父主题继承样式、元素和布局。如果 设置 它们的语法应该与
theme_settings()
.
- theme_settings(themename, settings)¶
暂时将当前主题设置为 主题名 ,应用指定的 设置 然后恢复上一个主题。
每个密钥 设置 是一个样式,每个值可以包含关键字“configure”、“map”、“layout”和“element create”,并且它们的格式应与方法指定的格式相同。
Style.configure()
,Style.map()
,Style.layout()
和Style.element_create()
分别。例如,让我们稍微更改一下默认主题的组合框:
from tkinter import ttk import tkinter root = tkinter.Tk() style = ttk.Style() style.theme_settings("default", { "TCombobox": { "configure": {"padding": 5}, "map": { "background": [("active", "green2"), ("!disabled", "green4")], "fieldbackground": [("!disabled", "green3")], "foreground": [("focus", "OliveDrab1"), ("!disabled", "OliveDrab2")] } } }) combo = ttk.Combobox().pack() root.mainloop()
- theme_names()¶
返回所有已知主题的列表。
- theme_use(themename=None)¶
如果 主题名 未给定,返回正在使用的主题。否则,将当前主题设置为 主题名 ,刷新所有小部件并发出<<ThemeChanged>>事件。
布局¶
布局可以只是 None
,如果它不接受任何选项,或者指定如何排列元素的选项dict。布局机制使用包几何管理器的简化版本:给定初始空腔,每个元素都分配一个包。有效选项/值为:
- 侧面:哪边
指定要放置元素的空腔的哪一侧;顶部、右侧、底部或左侧。如果忽略,元素将占据整个空腔。
- 粘性:NSWE
指定元素放置在其分配的包中的位置。
- 单位:0或1
如果设置为1,则会将元素及其所有子元素视为单个元素,以便
Widget.identify()
等。它用于像带夹点的滚动条拇指之类的东西。
- 子项: [分析…]
指定要放置在元素中的元素列表。每个元素都是一个元组(或其他序列类型),其中第一项是布局名称,另一项是 Layout .