python - 有没有办法使用 python 在 tkinter 中保留两个具有不同标签样式的笔记本?
问题描述
如果是标签或按钮,我知道它是如何完成的。
style=ttk.Style()
style.configure('One.TLabel', font=('Arial', 32))
style.configure('Two.TLabel', font=('Arial', 18))
h1=Label(root, text='Heading', style='One.TLabel')
h2=Label(root, text='Sub-heading', style='Two.TLabel')
h1.pack()
h2.pack()
这行得通。
但在笔记本标签的情况下,假设我想更改标签填充和字体。同样这个方法不起作用。
style=ttk.Style()
style.configure('One.TNotebook.Tab', font=('Arial', 14), padding=20)
style.configure('Two.TNotebook.Tab', font=('Arial', 12), padding=10)
# adding book1 tabs
book1=Notebook(root, style='One.TNotebook')
# adding book2 tabs
book2=Notebook(root, style='Two.TNotebook')
book1.pack()
book2.pack()
我们该怎么做呢?有解决办法吗?
解决方案
对于笔记本,您可以使用ttk.Style()
,如下所示,为同居在同一窗口中的两个不同笔记本定义两种不同的样式:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
style = ttk.Style()
style.configure('One.TNotebook.Tab', font=('Arial', 24), padding=40)
book1 = ttk.Notebook(root, style='One.TNotebook')
book1.pack()
frame1 = ttk.Frame(book1, width=400, height=200, relief=tk.SUNKEN)
frame2 = ttk.Frame(book1, width =400, height=200, relief=tk.SUNKEN)
book1.add(frame1, text = 'One')
book1.add(frame2, text = 'Two')
style.configure('Two.TNotebook.Tab', font=('Arial', 12), padding=10)
book2 = ttk.Notebook(root, style='Two.TNotebook')
book2.pack()
frame3 = ttk.Frame(book2, width=400, height=200, relief=tk.FLAT)
frame4 = ttk.Frame(book2, width =400, height=200, relief=tk.FLAT)
book2.add(frame3, text='Three')
book2.add(frame4, text='Four')
root.mainloop()
推荐阅读
- node.js - Fastcomet 共享主机服务器中的 MongoDb
- python - 在scrapy+selenium中,如何让蜘蛛请求等到前一个请求完成处理?
- c# - 将 json 转换为具有通用属性的 C# 类
- python - 将 Bokeh 颜色映射器从分类更新为连续
- android - 将 Jitsi Meet Sdk 与 linphone 集成的问题
- audio - ffmpeg concat 丢弃音频流
- javascript - 如何在反应中获得带有a-frame的旋转度数
- javascript - React Class to Function 组件
- c++ - C ++中的擦除插入习语?
- kubernetes - 如何在 kubernetes 网络策略中将 digitalocean 负载均衡器列入白名单?