在写ttk.Treeview的时候碰到的字体需求;查找后整合了一些方法,记下备用


修改列字体大小

原代码:

import tkinter as tk
from tkinter import ttkroot = tk.Tk()tree = ttk.Treeview(root)
tree.pack()tree["columns"] = ('1', '2', '3', '4')  # 定义列
tree.column('1', width=120)              # 设置列
tree.column('2', width=200)
tree.column('3', width=120)
tree.column('4', width=200)
tree.heading('1', text="考场")           # 设置显示的表头名
tree.heading('2', text="监考员")
tree.heading('3', text="考场")
tree.heading('4', text="监考员")
tree['show'] = 'headings'              # 仅显示标题行root.mainloop()                         # 窗口事件循环

需求:将四列标题中的字体大小修改为15,字体为宋体


  • 方法一:使用Style()设置Treeview.Heading文本样式
import tkinter as tk
from tkinter import ttkroot = tk.Tk()tree = ttk.Treeview(root)
tree.pack()style_head = ttk.Style()
style_head.configure("Treeview.Heading", font=("宋体", 15))tree["columns"] = ('1', '2', '3', '4')  # 定义列
tree.column('1', width=120)              # 设置列
tree.column('2', width=200)
tree.column('3', width=120)
tree.column('4', width=200)
tree.heading('1', text="考场")           # 设置显示的表头名
tree.heading('2', text="监考员")
tree.heading('3', text="考场")
tree.heading('4', text="监考员")
tree['show'] = 'headings'              # 仅显示标题行root.mainloop()                         # 窗口事件循环

通过样式化小部件内的特定元素来实现

解析:

  1. style_head = ttk.Style()为声明创建 tk样式,并将其存储在变量style_head内部
  2. style_head.configure()为修改变量style_head的样式
  3. "Treeview.Heading"是列标题的元素的名称
  4. font=(“宋体”, 15)是一种“欺骗”的方式,无需更改字体本身即可修改字体样式

  • 方法二:使用tkinter.font内置的名为nametofont的方法名
import tkinter as tk
from tkinter.font import nametofont
from tkinter import ttkroot = tk.Tk()tree = ttk.Treeview(root)
tree.pack()nametofont("TkHeadingFont").configure(family = "宋体", size=15)tree["columns"] = ('1', '2', '3', '4')  # 定义列
tree.column('1', width=120)              # 设置列
tree.column('2', width=200)
tree.column('3', width=120)
tree.column('4', width=200)
tree.heading('1', text="考场")           # 设置显示的表头名
tree.heading('2', text="监考员")
tree.heading('3', text="考场")
tree.heading('4', text="监考员")
tree['show'] = 'headings'              # 仅显示标题行root.mainloop()                         # 窗口事件循环

通过修改TkHeadingFont属性来修改字体。这意味着,如果您要在其他地方使用该字体,它也会以相同的样式出现。

解析:

  1. nametofont方法对特定小部件属性进行样式修改
  2. "TkHeadingFont"是列标题的属性的名称
  3. nametofont().configure()为修改前者的属性样式
  4. family为修改字体
  5. size为修改大小

注:需在顶部导入from tkinter.font import nametofont


修改树式图行高/树视图字体

原代码:

import tkinter as tk
from tkinter import ttkroot = tk.Tk()tree = ttk.Treeview(root)
tree.pack()tree["columns"] = ('1', '2', '3', '4')  # 定义列
tree.column('1', width=100)              # 设置列
tree.column('2', width=100)
tree.column('3', width=100)
tree.column('4', width=100)
tree.heading('1', text="ID")           # 设置显示的表头名
tree.heading('2', text="姓名")
tree.heading('3', text="性别")
tree.heading('4', text="身高")
tree['show'] = 'headings'              # 仅显示标题行
tree['height'] = 2tree.insert('', '1', values=('1', "张三", "男", "172"))
tree.insert('', '2', values=('2', "李四", "男", "175"))root.mainloop()                            # 窗口事件循环

同修改列字体一样使用使用Style()设置Treeview文本样式即可
修改字体大小,行间距不会自适应,需手动一起设置

  • 方法一:使用Style()设置Treeview文本样式
import tkinter as tk
from tkinter import ttkroot = tk.Tk()tree = ttk.Treeview(root)
tree.pack()style_value = ttk.Style()
style_value.configure("Treeview", rowheight=30, font=("微软雅黑", 15))tree["columns"] = ('1', '2', '3', '4')  # 定义列
tree.column('1', width=100)              # 设置列
tree.column('2', width=100)
tree.column('3', width=100)
tree.column('4', width=100)
tree.heading('1', text="ID")           # 设置显示的表头名
tree.heading('2', text="姓名")
tree.heading('3', text="性别")
tree.heading('4', text="身高")
tree['show'] = 'headings'              # 仅显示标题行
tree['height'] = 2tree.insert('', '1', values=('1', "张三", "男", "172"))
tree.insert('', '2', values=('2', "李四", "男", "175"))root.mainloop()                            # 窗口事件循环

通过样式化小部件内的特定元素来实现

为美化效果,建议行间距为字体两倍

解析:

  1. style_values = ttk.Style()为声明创建 tk样式,并将其存储在变量style_values内部
  2. style_values.configure()为修改变量style_values的样式
  3. "Treeview"是树式图的元素的名称
  4. font=(“宋体”, 15)是一种“欺骗”的方式,无需更改字体本身即可修改字体样式
  5. rowheight为行间距

多个树状图区分样式

  • Treeview样式是所有Treeview小部件使用的默认样式。如果更改此设置,则更改所有树视图。如果只想更改一个Treeview,请根据默认的Treeview样式创建新样式,然后更改该样式(reference)
style_values.configure('MyStyle.Treeview', rowheight=45)
NewTree = ttk.Treeview(myApp, height=4, style='MyStyle.Treeview')

将样式自定义一份,再在创建Treeview时直接指定即可

ttk.Treeview字体相关推荐

  1. python treeview文本自动换行显示_在tkinter.ttk.Treeview列中设置文本格式

    我想知道如何调整ttk.Treeview列中的文本.下面是我的意思的一个例子.请注意日期和数字之间的位置不正确.我认为这和间距有关,但我可能错了. 编辑:用Python 3编写.#! coding=u ...

  2. python ttk Treeview的插入、清空、各种点击事件、获取条目值、标题单击排序

    ~ 昨天整了一天Tkinter的treeview,发现中文的教程乃至提问都很少,其中两个问题的解决都是靠steakoverflow上找到的-- 在这里放出来我遇到并解决的问题,大家以后可能遇到的话就能 ...

  3. ttk Treeview

    import threading,time #===========  创建 Treeview  ============== def initTreeview(self): # 定义 Treevie ...

  4. tkinter treeview加入滚动条

    import tkinter as tk from tkinter import ttkclass Test:def __init__(self,w1):self.w1 = w1self.w1.con ...

  5. 【Tkinter TreeView】

    目录 一.前言 二.TreeView的引入 三.TreeView的属性 四.TreeView的item选项 五.列标识符 六.TreeView触发事件 七.TreeView点击事件 八.TreeVie ...

  6. python中ttk和tkinter_Python tkinter与ttk日历

    我正在使用 this代码在我的Tkinter上创建一个简单的日历.当我在主根窗口上放置日历时,日历显示正常.因此,我决定放置另一个按钮,它将创建一个Tkinter顶层窗口并在顶层窗口上放置另外一个日历 ...

  7. python 显示数据库数据tk_如何使用python显示从Mysql表获取的Tkinter treeview中的数据...

    我已经用treeview创建了一个表,我想插入从mysql表中获取的数据.如果有人能帮助我,因为我已经尽了最大的努力,但仍然没有成功.使用这个语句tree.insert("", 1 ...

  8. 学习笔记(57):Python实战编程-Treeview

    立即学习:https://edu.csdn.net/course/play/19711/343120?utm_source=blogtoedu 1.树状结构Treeview:分为树状折叠式列表和列表显 ...

  9. python treeview底部加个按钮_Python爬取京东商品信息(GUI版本)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:DYblog 转载:https://www.cnblogs.com/ ...

  10. pythonUI---ttk.Treeview使用心得(内含表格形式加垂直水平滚轮方法)

    Treeview使用技巧 上两天在搞编译原理的实验,小组一致决定用py,那就搞把,然后在设计前端的时候用的自带的tkinter,由于前端要画表格就上网找了一下,这里是我总结的一些个使用技巧. 有心追求 ...

最新文章

  1. 第十六届全国大学生智能车竞赛比赛获奖证书格式说明以及下载链接
  2. .net事务的困扰,请大虾指点。
  3. python生成迭代的用法
  4. Strut2和FreeMarker整合时的一些问题
  5. APP-V5.0的Sequencer过程
  6. matlab大作业题题单,2011MATLAB大作业-题目-
  7. 论文小综 | 知识图谱表示学习中的零样本实体研究
  8. Matlab guide菜单+快捷菜单的使用
  9. TensorFlow2.0:高阶操作
  10. python入门指南-Python 入门指南
  11. 28.MySQL Variables
  12. Node——request使用代理
  13. 高斯光束复振幅分布MATLAB
  14. 答题器真的什么问题都能答出来吗?
  15. IDEA 中添加@author注释(live templates)
  16. 【Vue学习笔记_05】v-on事件监听
  17. 关于JAVA的优势——跨平台和健壮性
  18. 纳米红光更安全的养生方式——红光光浴#大健康#红光光浴#红光#种光光学
  19. 穿戴式心电信号采集系统设计(任务书+lunwen+答辩PPt+查重报告)
  20. MathType中如何批量修改公式字体和大小

热门文章

  1. 媒体聚焦:西电卡门——12月24日更新
  2. win10误删的注册表能还原吗_手把手讲解win10系统误删注册表恢复的还原办法
  3. 程序员的而立之年,迷茫之年
  4. android 玻璃背景,Android 弹窗毛玻璃背景实践
  5. 小程序之100推荐:801~900
  6. 展开操作符:一家人就这么被拆散了
  7. 简单好用的Linux服务器管理面板——宝塔面板
  8. H5使用photo-sphere-viewer.js实现360°全景
  9. wangEditor富文本自定义图片宽度
  10. css练习-小米官网首页静态页面制作