《tkinter实用教程二》tkinter的子模块ttk

article/2025/9/24 15:36:16

更多《Tkinter 实用教程》系列文章

tkinter 的子模块 ttk

本文主要介绍 tkinter 子模块的特性,以及和原生 tkinter 控件之间的区别。

tkinter.ttk 模块提供了对 tk 风格控件集合的访问途径,在 tkinter 8.5 中引入。

引入 tkinter.ttk 的基本思想是尽可能将实现控件行为的代码与实现其外观的代码分开。

如果用一句话解释引入 ttk 的目的,那就是:

使用 ttk 控件可以改善应用程序的外观和感觉。

ttk 模块是 tkinter 的新特性,因此,建议使用 ttk 控件作为开发和学习的重点。

如何创建 ttk 控件

创建 ttk 控件的方法和 tkinter 控件的方法略有不同:

创建一个 tkinter 按钮:

from tkinter import *root = Tk()
btn = Button(root,text="tkinter 按钮")
btn.pack()root.mainloop()

创建一个 ttk 按钮:

from tkinter import *
from tkinter import ttkroot = Tk()
btn = ttk.Button(root,text="ttk 按钮")
btn.pack()root.mainloop()

以下是两段代码的执行结果:

在这里插入图片描述
在这里插入图片描述

从截图可以明显看出 tkinter 原生按钮的样式和 ttk 模块按钮的默认样式是不一样的。

如何设置 ttk 控件的样式

ttk 子模块的引出,主要目的是解决界面美观度和分离控制代码和样式代码的目的。

所以 ttk 在样式控制上和 tkinter 有较大区别。

下面以 Label 对象为例,通过创建一个蓝底红字的标签,说明二者的主要区别:

使用 tkinter 控件的代码:

from tkinter import *root = Tk()
l1 = Label(text="label1",fg="red",bg="blue")
l1.pack()root.mainloop()

使用 ttk 控件的代码:

from tkinter import *
from tkinter import ttkroot = Tk()style_default = ttk.Style()
style_default.configure("TLabel",foreground="red",background="blue")l1 = ttk.Label(root,text="lable1",style='TLabel')
l1.pack()root.mainloop()

以下是代码执行的结果:

在这里插入图片描述
在这里插入图片描述

二者在展示效果上基本没有区别,主要区别在代码的编写上。

由于 ttk 分离了控件的创建代码和样式代码,所以代码看起来比较复杂,行数较多。

实际上,ttk 由于抽离了样式代码,同样的样式只需要写一次,在创建控件的时候可以直接引用,所以当控件较多时,会极大的降低工作和代码量。

tkinter 原生控件每次创建一个控件,都需要写一遍样式代码,所以不适合使用在稍微复杂一点的应用中。

ttk 支持的控件

ttk 带有17个控件,其中11个已经存在于 tkinter 中:ButtonCheckbuttonEntryFrameLabelLabelFrameMenubuttonPanedWindowRadiobuttonScaleScrollbar

6个新的窗口控件类是:ComboboxNotebookProgressbarSeparatorSizegripTreeview。 所有这些类都是Widget的子类。

ttk 控件通用参数

ttk.Widget 类定义了 tk 风格控件的标准可选参数通用方法,该类类似于 Java 中的接口,不应该直接实例化。

  1. 所有 ttk 控件都能接受以下参数:
参数描述
class指定窗口类。 该类用于在选项数据库中查询窗口的其他选项、确定窗口的默认绑定标签以及选择控件的默认布局和样式。 此选项是只读的,只能在创建窗口时指定。
cursor指定要用于控件的鼠标光标。 如果设置为空字符串(默认值),从父控件继承光标。
takefocus确定窗口在键盘遍历期间是否接受焦点。 返回 0、1 或空字符串。 如果返回 0,则表示在键盘遍历期间应完全跳过该窗口。 如果为 1,则表示只要窗口可见,就应该接收输入焦点。 空字符串意味着遍历脚本决定是否关注窗口。
style可用于指定控件样式。
  1. 可滚动控件的通用可选参数

具备滚动条的控件支持以下可选参数:

参数描述
xscrollcommand用于与水平滚动条通信。当widget窗口中的视图发生变化时,widget会根据scrollcommand生成Tcl命令。通常这个选项由一些滚动条的Scrollbar.set()方法组成。 这将导致滚动条在窗口中的视图发生变化时更新。
yscrollcommand用于与垂直滚动条通信。 有关更多信息,请参见上文。
  1. 标签类控件的通用参数
    LabelButton类Button 控件支持以下可选参数:
参数描述
text指定在控件中展示的字符串
textvariable指定一个变量名,这个变量的值会填充text参数,展示在控件中。
underline如果设置,则指定要在文本字符串中加下划线的字符的索引(从 0 开始)。 下划线字符用于助记符激活。
image指定要显示的图像。 这是一个包含 1 个或多个元素的列表。 第一个元素是默认图像名称。 列表的其余部分是由 Style.map() 定义的一系列 statespec/value 对,指定当小部件处于特定状态或状态组合时要使用的不同图像。 列表中的所有图像都应具有相同的大小。
compound在文本和图像选项都存在的情况下,指定如何相对于文本显示图像。 有效值为:text:仅显示文本;image:仅显示图像;top、bottom、left、right:分别显示文本的上方、下方、左侧或右侧的图像。none:默认值。 显示图像(如果存在),否则显示文本。
width如果大于零,则指定为文本标签分配多少字符宽度的空间,如果小于零,则指定最小宽度。 如果为零或未指定,则使用文本标签的自然宽度。
  1. 兼容性选项
参数描述
state可设置为 normaldisabled 以控制“禁用”状态位。 这是一个只写选项:设置它会更改控件状态,但 Widget.state() 方法不影响此选项。
  1. 控件状态

控件状态由独立的状态标志组成的位图:

参数描述
active鼠标光标在小部件上,按下鼠标按钮会导致一些动作发生。
disabled在程序控制下,控件被禁用
focus焦点
pressed控件被按下
selectedOntruecurrent 用于诸如 Checkbuttons 和 radiobuttons 之类的东西
backgroundWindows和Mac有一个“active”或前景窗口的概念。背景状态在后台窗口中为控件设置,并在前台窗口中清除。
readonly只读,不允许用户改动
alternate特定于窗口控件件的替代显示格式。
invalid控件的值无效。

更多《Tkinter 实用教程》系列文章


http://chatgpt.dhexx.cn/article/hqZ6vQgA.shtml

相关文章

tkinter 使用详解

文章目录 1、窗口设置各控件 显示 一览表:变量有: 2、Label 标签部件3、Button 按钮部件4、Checkbutton 选择部件(可以多选)5、Radiobutton 选择部件(只能单选)6、Frame 部件LabelFrame 部件 7、Entry 单行…

Tkinter基础

1.tkinter tkinter是Python下面向tk的图形界面接口库,可以方便地进行图形界面设计和交互操作编程。tkinter的优点是简单易用、与Python的结合度好。tkinter在Python 3.x下默认集成,不需要额外的安装操作;不足之处为缺少合适的可视化界面设计工…

Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法

>>>【上节回顾&#xff1a;tkinter编程基本步骤、窗口基本属性及Toplevel控件的使用】<<< Python Tkinter教程&#xff08;二&#xff09; 这篇博客将详细并尽可能完整地介绍tkinter模块15种基本控件中的Label控件、Frame控件和Button控件&#xff0c;包括所…

【python】tkinter教程、35个tkinter示例代码和GUI图示

#示例1&#xff1a;主窗口及标题import tkinter as tkapp tk.Tk() #根窗口的实例(root窗口)app.title(Tkinter root window) #根窗口标题theLabel tk.Label(app, text我的第1个窗口程序&#xff01;) #label组件及文字内容theLabel.pack() #pack()用于自动调节组件的尺寸app.…

Tkinter模块学习

Tkinter 主窗口和位置大小 通过geometry(wxhxy)进行设置&#xff0c;w为宽度&#xff0c;h为高度&#xff0c;x表示距离屏幕左边的距离&#xff0c;-x表示距离屏幕右边的距离&#xff0c;y表示距离屏幕上边的距离&#xff0c;-y表示屏幕下边的距离 # -*- coding: UTF-8 -*- D…

Python GUI之tkinter库教程

tkinter的简介 tkinter 是 Python 的标准 GUI 库。它基于 Tk 工具包&#xff0c;该工具包最初是为工具命令语言&#xff08;Tool Command Language&#xff0c;Tcl&#xff09;设计的。Tk 普及后&#xff0c;被移植到很多其他的脚本语言中&#xff0c;包括 Perl&#xff0c;Ru…

Tkinter使用

一、前言 这篇文章是去年8月份学习python时顺便在博客园写的一篇笔记&#xff0c;现在搬运到hexo博客上来&#xff0c;主要针对新手。由于本篇文章较长&#xff0c;所以下面给出内容目录方便跳转阅读&#xff0c;当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅。 首…

Tkinter保姆级教程(上)

目录 什么是GUI Tkinter用法详解 第一个Tkinter程序 常用控件和属性 主窗口 Label标签控件 Button按钮控件 Entry输入控件 基本属性 Text 文本控件 列表框(ListBox)和组合框(Combobox) 单选框(Radiobutton)和多选框按钮(Checkbutton) 什么是GUI 图形用户界面&#xf…

《tkinter实用教程一》Linux环境下安装tkinter

更多《Tkinter 实用教程》系列文章 在 Linux 环境下安装 tkinter tkinter 是 Python 编程语言中描述用于构建图形用户界面 (GUI) 的控件集&#xff0c;因此&#xff0c;学习 tkinter 安装之前&#xff0c;需要首先确定您已经正确安装了 Python。 您可以使用如下命令&#xf…

Tkinter简介

Tkinter简介 (也叫 Tk 接口)是 Tk 图形用户界面工具包标准 的 Python 接口。 Tk 是一个轻量级的跨平台图形用户界面 (GUI)开发工具。Tk 和 Tkinter 可以运行在大多数 的 Unix 平台、Windows、和 Macintosh 系统。 由于是Python自带的标准库&#xff0c;我们想要使用它的时候…

tkinter库详解

①导入标准库&#xff08;tkinter为python标准库无需安装&#xff09; from tkinter import * ②窗口的创建和设置 窗口的创建和设置方法注释rootTk()生成主窗口root.geometry(‘250x250’)改变窗体大小&#xff08;‘宽x高’&#xff09;&#xff0c;注意是x不是*root.geome…

python tkinter详解

PYTHON TKINTER Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的平台下使用,同样可以应用在 Windows 和 Mac系统里。 与tkinter齐名的还有wxpython&#xff0c;jython&#xff0c;pyqt&#xff08;pyqt5&#xff09;。其中&#x…

python-tkinter 官方文档

python-tkinter官方文档 防盗声明&#xff1a;在其他网站看到的都是盗版的 本文源地址唯一地址 https://blog.csdn.net/weixin_44331765/article/details/120923775 搜了好多都收费&#xff0c;用官网的文档赚钱也是够了&#xff0c;分享一个给大家&#xff0c;互相学习。 1…

python --Tkinter详解

简介 tkinter tkinter(Tk interface)是Python的标准GUl库&#xff0c;支持跨平台的GUl程序开发。tkinter适合小型的GUl程序编写&#xff0c;也特别适合初学者学习GUl编程。 wxPython wxPython是比较流行的GUI库&#xff0c;适合大型应用程序开发&#xff0c;功能强于tkinter,整…

【Python】GUI编程(Tkinter)教程

什么是Tkinter&#xff1f; Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinte…

Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1

Tkinter教程(每天半小时&#xff0c;3天彻底掌握Tkinter)day1 目录 Tkinter教程(每天半小时&#xff0c;彻底掌握Tkinter)day1 教程环境 Tkinter概述 GUI是什么 Tkinter是什么 Tkinter的弊端 第一个Tkinter程序 插入ico 关闭python窗体 python窗体居中设置 护眼色_颜…

【Python】Tkinter教程

什么是Tkinter&#xff1f; Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinte…

Tkinter保姆级教程(下)

继上次肝了几天的Tkinter保姆级教程&#xff08;上&#xff09;&#xff0c;接下来继续肝教程下&#xff0c;冲冲冲。 目录 Scale控件 Canvas画布控件 Menu菜单控件 Scrollbar滚动条控件 Event事件处理 布局管理器&#xff08;pack&#xff0c;grid&#xff0c;place&am…

Python Tkinter教程(一)——tkinter编程基本步骤、窗口基本属性及Toplevel控件的使用

>>>【上节回顾&#xff1a;Python Tkinter 模块简要介绍】<<< Python Tkinter教程&#xff08;一&#xff09; 这篇博客将详细地介绍如何使用tkinter模块进行简单的GUI编程&#xff08;包括基本步骤、窗口基本属性&#xff09;&#xff0c;同时还会解释如何使…

Tkinter教程

文章目录 Tkinter教程&#xff08;非常详细&#xff09;教程特点阅读条件 GUI是什么GUI发展史GUI应用领域GUI的优势GUI开发工具 Tkinter是什么第一个Tkinter程序1) 主窗口设置2) 添加文本3) 添加按钮4) 独立运行tkinter程序 Tkinter常用控件和属性控件类型控件基本属性 Tkinter…