第一个问题
我使用了一种样式来配置选项卡的宽度:
style = ttk.Style(root)
style.configure('TNotebook.Tab', width=1000)
因为我设置了一个非常大的宽度,所以窗口太小而无法完全显示所有选项卡,所以它们被缩小以适应,这正是想要的结果。为确保标签宽度足够大,无论使用何种屏幕,都可以使用.winfo_screenwidth()
.
完整示例:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('600x400+0+0')
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
style = ttk.Style(root)
style.configure('TNotebook.Tab', width=root.winfo_screenwidth())
tabs = ttk.Notebook()
tabs.grid(row=0, column=0, sticky='nsew')
tab1 = tk.Frame(tabs, bg='red')
tab2 = tk.Frame(tabs, bg='green')
tab3 = tk.Frame(tabs, bg='blue')
tabs.add(tab1, text='First Tab')
tabs.add(tab2, text='Second Tab')
tabs.add(tab3, text='Third Tab')
root.mainloop()
第二个问题
我不确定这是否是所要求的,但可以使用样式更改选项卡的设置。例如,设置背景颜色:
style.configure('TNotebook.Tab', background='green')
上面的代码将所有未选中的选项卡的背景设置为绿色。所选选项卡的背景可以设置为
style.map('TNotebook.Tab', background=[('selected', 'yellow')])
但是,无法单独更改选项卡的背景颜色。为此,唯一的选择是使用按钮或标签作为选项卡来编写您自己的笔记本小部件。