当前位置: 首页 > news >正文

python3 thinter tkinter.ttk — Tk主题样式设置

更多详情:来自TTK的英文文档链接
2.1使用TTK
导入模块:

from tkinter import ttk

覆盖基本的Tk小部件,则需导入:

from tkinter import *
from tkinter.ttk import *

该代码导致几个tkinter.ttk小部件(Button, Checkbutton,Entry,Frame,Label, LabelFrame,Menubutton,PanedWindow, Radiobutton,Scale和Scrollbar)自动替换Tk小部件。
因为Ttk小部件不再存在诸如:“fg”,"bg"等小部件以及其它相关的小部件样式,所以我们只能使用ttk.Style类来改进样式效果。

2.2 Ttk小部件
Ttk附带17个小部件,其中11个已经存在于tkinter: Button,Checkbutton,Entry,Frame, Label,LabelFrame,Menubutton,PanedWindow, Radiobutton,Scale和Scrollbar。其他六个是新的:Combobox,Notebook,Progressbar, Separator,Sizegrip和Treeview。而且它们都是Widget的子类。
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")

2.3小工具
2.3.1
ttk.Widget定义了Tk主题小部件支持的标准选项和方法,不应该直接实例化。

选项描述
class[类] 指定窗口类。在查询选项数据库中窗口的其他选项时,使用该类,确定窗口的默认绑定标签,以及选择窗口小部件的默认布局和样式。此选项是只读的,只能在创建窗口时指定。
cursor[光标] 指定要用于窗口小部件的鼠标光标。如果设置为空字符串(默认值),则为父窗口小部件继承游标。
takefocus确定窗口是否在键盘遍历期间接受焦点。返回0,1或空字符串。如果返回0,则表示在键盘遍历期间应完全跳过该窗口。如果为1,则表示只要可以查看窗口就应该接收输入焦点。空字符串表示遍历脚本决定是否关注窗口。
style[样式] 可用于指定自定义窗口小部件样式 。

2.3.2可滚动窗口小部件选项
由滚动条控制的窗口小部件支持以下选项。

选项描述
xscrollcommand用于与水平滚动条进行通信。当窗口小部件窗口中的视图发生更改时,窗口小部件将基于scroll命令生成Tcl命令。通常,此选项包含某些滚动条的Scrollbar.set()方法 。这将导致只要窗口中的视图发生更改,就会更新滚动条。
yscrollcommand用于与垂直滚动条进行通信。有关更多信息,请参见上文。

2.3.3label选项

选项描述
text[文本] 指定要在窗口小部件中显示的文本字符串。
textvariable指定将使用其值代替文本选项资源的名称。
underline[下划线] 如果设置,则指定要在文本字符串中加下划线的字符的索引(从0开始)。下划线字符用于助记符激活。
image[图片] 指定要显示的图像。这是一个或多个元素的列表。第一个元素是默认图像名称。列表的其余部分,如果由Style.map()定义的一系列statepec / value对,指定在窗口小部件处于特定状态或状态组合时要使用的不同图像。列表中的所有图像应具有相同的大小。
compound[复合]指定在存在文本和图像选项的情况下如何显示相对于文本的图像。有效值为: text:仅显示文字 image:仅显示图像 top, bottom, left, right: :分别显示文本上方,下方,左侧或右侧的图像。none:默认值。显示图像(如果存在),否则显示文本。
width[宽度]如果大于零,则指定为文本标签分配多少空格(字符宽度),如果小于零,则指定最小宽度。

2.3.4兼容性选项

选项描述
state可以设置为“正常”或“禁用”以控制“禁用”状态位。这是一个只写选项:设置它会更改窗口小部件状态,但Widget.state()方法不会影响此选项。

2.3.5小部件state

flag描述
active鼠标光标位于窗口小部件上,按下鼠标按钮将导致某些操作发生
disabled在程序控制下禁用小组件
focus小工具有键盘焦点
pressed小工具被按下了
selected“On”,“true”或“current”类似于Checkbuttons和radiobutton的设置一样
backgroundWindows和Mac具有“活动”或前景窗口的概念。该背景状态设置为背景的窗口小部件,并清除了那些在前台窗口
readonly小部件不应允许用户修改
alternate特定于小部件的备用显示格式
invalid小部件值无效

2.3.6 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)
	  测试小部件的状态。如果没有指定一个回调,返回真如果控件状态匹配statespec和假否则。
	  如果指定了回调,那么如果widget状态与statespec匹配,则使用args调用它 。
  state(statespec=None)
	 修改或查询小部件状态。如果指定了statespec,则根据它设置窗口小部件状态并返回指示哪些标志
	 已更改的新状态规范。如果未指定statespec,则返回当前启用的状态标志。

statespec通常是列表或元组。
2.4. Combobox
该ttk.Combobox控件结合了文本字段值的弹出的下拉列表。此小部件是Entry的子类。

除了从Widget继承的方法:Widget.cget(), Widget.configure(),Widget.identify(),Widget.instate() 和Widget.state(),以及继承自Entry: Entry.bbox()的以下方法,Entry.delete(),Entry.icursor(), Entry.index(),Entry.inset(),Entry.selection(), Entry.xview(),它有一些其他方法,在ttk.Combobox中描述 。
2.4.1选项
此小部件接受以下特定选项:

选项描述
exportselection布尔值。如果设置,则窗口小部件选择链接到窗口管理器选择(例如,可以通过调用Misc.selection_get返回)。
justify指定文本在窗口小部件中的对齐方式。“left”,“center”或“right”之一。
height以行为单位指定弹出列表框的高度。
postcommand在显示值之前立即调用的脚本(可能已在Misc.register中注册)。它可以指定要显示的值。
state"normal”,“readnoly”或“disabled”之一。在“readonly”状态下,可能无法直接编辑该值,并且用户只能从下拉列表中选择值。在“normal”状态下,文本字段可直接编辑。在“disabled”状态下,不可能进行交互。
textvariable指定其值链接到窗口小部件值的名称。只要与该名称关联的值发生更改,窗口小部件值就会更新,反之亦然。请参阅tkinter.StringVar。
values指定要在下拉列表框中显示的值列表
width指定一个整数值,指示输入窗口的所需宽度,以小部件字体的平均大小字符表示。

2.4.2 虚拟事件
当用户从值中选择元素时,组合框小部件生成<>虚拟事件
2.4.3 ttk.Combobox
class tkinter.ttk.Combobox
current(newindex=None)
如果指定了newindex,则将组合框值设置为元素位置newindex。否则,返回当前值的索引,如果当前值不在值列表中,则返回-1。
get()
返回组合框的当前值。
set(value)
将组合框的值设置为value。
2.4.5 笔记本
Ttk Notebook小部件管理一组窗口并一次显示一个窗口。每个子窗口与选项卡相关联,用户可以选择该选项卡以更改当前显示的窗口。
2.5.1 选项
此小部件接受以下特定选项:

选项描述
height高度 如果存在且大于零,则指定窗格区域的所需高度(不包括内部填充或制表符)。否则,使用所有窗格的最大高度。
padding填充 指定要在笔记本外部添加的额外空间量。填充是一个列表,最多四个长度规格左上角。如果指定的元素少于四个,则默认为top,right默认为left,top默认为left。
width宽度 如果存在且大于零,则指定窗格区域的所需宽度(不包括内部填充)。否则,使用所有窗格的最大宽度。

2.5.2 Tab 选项
标签还有特定选项:

州 “正常”,“禁用”或“隐藏”。如果“禁用”,则选项卡不可选。如果“隐藏”,则不显示选项卡。
黏 指定子窗口在窗格区域中的定位方式。值是包含零个或多个字符“n”,“s”,“e”或“w”的字符串。根据grid()几何管理器,每个字母指的是子窗口将坚持的一侧(北,南,东或西)。
填充 指定要在笔记本和此窗格之间添加的额外空间量。语法与此小部件使用的选项填充相同。
文本 指定要在选项卡中显示的文本。
图片 指定要在选项卡中显示的图像。请参阅Widget中描述的选项图像。
复合 指定如何在文本和图像都存在的情况下显示相对于文本的图像。有关合法值,请参阅 标签选项。
强调 指定要在文本字符串中加下划线的字符的索引(从0开始)。如果调用

相关文章:

  • tkinter ttk.Combobox Combobox 下拉框设置背景颜色
  • mysql 复制表,表结构和数据的方法
  • centos7 yum update更新出错 yum源出错 repodata/repomd.xml 404error
  • pip selenium安装出错 Could not find a version that satisfies the requirement selenium (from versions: )
  • firefox 出现 在线用户数超过了序列号允许。您需要购买或升级您的序列号
  • Python tornado出现 :TypeError: initialize() missing 1 required positional argument: 'url'
  • python 简单排序算法 冒泡、选择、插入等算法
  • 关于jquery定时器设置问题 ios定时器无法响应问题 ios 时间显示为NaN问题 优惠时间倒计时
  • yii2 advanced 开启gii localhost/index.php?r=gii无法打开gii
  • gii生成CRUD操作和视图步骤
  • 微信小程序 onShow无反应的问题
  • 微信小程序页面跳转后定时器如何关闭
  • yii2快速使用多个数据库的方法
  • apache配置不同端口管理不同项目
  • The view file does not exist: F:\wamp\www\frontend/mail\passwordResetToken-html.php
  • 11111111
  • angular组件开发
  • Hexo+码云+git快速搭建免费的静态Blog
  • Javascript Math对象和Date对象常用方法详解
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • mac修复ab及siege安装
  • webgl (原生)基础入门指南【一】
  • 复习Javascript专题(四):js中的深浅拷贝
  • 前端存储 - localStorage
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 手写双向链表LinkedList的几个常用功能
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 在weex里面使用chart图表
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # 飞书APP集成平台-数字化落地
  • #Linux(make工具和makefile文件以及makefile语法)
  • #NOIP 2014#Day.2 T3 解方程
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (转)http-server应用
  • (转)JAVA中的堆栈
  • (转)shell调试方法
  • (转)我也是一只IT小小鸟
  • ***通过什么方式***网吧
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET4.0并行计算技术基础(1)
  • .Net6 Api Swagger配置
  • .NET建议使用的大小写命名原则
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @Resource和@Autowired的区别
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记