本节简单介绍了ttk组件基本内容,可作为ttk组件使用前导知识

tkinter布局管理器教程(Tkinter-ttk组件)(1)

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个组件

新增六个组件

ttk组件不太兼容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新增的组件具体使用,以后有独立章节介绍

,