本节简单介绍了ttk元件基本内容,可作为ttk元件使用前导知识
ttk元件介绍
从Tk 8.5版本后,引入了ttk元件,这个模组可以替换大部分Tkinter元件
为什么要引入ttk元件?
原因是在Tk 8.5以前,Tkinter元件UI无法适应不同操作系统,UI所以显得很难看,而ttk元件可以自适应不同操作系统UI风格,无需修改程式程式码,UI元件更加友好
ttk元件涵盖一部分tkinter元件,还增加了一些新元件,同时简化了元件设定操作
ttk元件汇入
推荐如下方式汇入ttk模组:
from tkinter import ttk
ttk元件涵盖Tkinter元件(一部分),所以ttk元件覆盖tkinter元件使用
from tkinter import *
from tkinter.ttk import *
ttk元件
ttk有17个元件,涵盖tkinter 11个元件
ButtonCheckbuttonEntryFrameLabelLabelFrameMenubuttonPanedWindowRadiobuttonScaleScrollbar新增六个元件
ComboboxNotebookProgressbarSeparatorSizegripTreeviewttk元件不太相容Tkinter元件,如tkinker.Label通过fg、bg引数设定前景色和背景色,而ttk.Label元件通过style引数设定,如下示例:
# tkinter元件设定
tkinter.Label(text="Test", fg="black", bg="white")
tkinter.Label(text="Test", fg="black", bg="white")
# ttk元件设定
style = ttk.Style()
style.configure("BW.TLabel", foreground="black", background="white")
ttk.Label(text="Test", style="BW.TLabel")
ttk.Label(text="Test", style="BW.TLabel")
ttk元件通用引数
所有 ttk 元件都支援的引数:
选项描述class指定视窗类,此选项只读,只能在建立视窗时指定cursor指定视窗元件的鼠标游标样式takefocus指定元件是否接受焦点,1接受焦点,0反之style指定视窗元件样式
ttk元件状态
ttk元件有一套状态标记,用于指示元件的状态,这些状态都可以程式设计开启或者关闭,下表是各种状态的含义
state描述active鼠标指标正处于控制元件内alternate该状态为应用程序保留backgroundUnder Windows or MacOS, the widget is located in a window that is not the foreground window.disabled禁用控制元件focus控制元件处于聚焦状态invalid控制元件的内容无效pressed控制元件被按下readonly只读selected控制元件被选中
ttk通用方法
.cget(option) 获得某个属性的值
.configure(option=value, ...) 设定某个属性的值,如果没有引数,它会返回一个字典,得到该元件所有属性
.state(stateSpec=None) 获取/设定/清空当前的状态
最后: 有关ttk新增的元件具体使用,以后有独立章节介绍