如何解决如何展开TTK笔记本标签或选项卡按钮以填充窗口
我要扩展标签以填充窗口
例如我们在tk按钮中使用
parent.columnconfigure(0,weight=1)
button.grid(sticky='ew')
我们可以这样做吗,以同时扩展两个标签名称,以捕获所有可用的屏幕
还有第二个问题:如何更改标签或按钮标签的背景色或所有可用设置
提前感谢
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)
tabs = ttk.Notebook()
tabs.grid(row=0,column=0,sticky='nsew')
tab1 = tk.Frame(tabs,bg='red')
tab2 = tk.Frame(tabs,bg='green')
tabs.add(tab1,text='First Tab')
tabs.add(tab2,text='Second Tab')
root.mainloop()
解决方法
第一个问题
我使用一种样式来配置标签的宽度:
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')])
但是,不能单独更改选项卡的背景颜色。为此,唯一的选择是使用按钮或标签作为标签来编写自己的笔记本小部件。
,我在ttk笔记本中找不到增加选项卡空间的任何选项,但是我们可以通过一个简单的技巧来增加它的大小,如果您延长选项卡名称,它的空间也会增加,因此我们可以应用相同的方法来增加其宽度
tabs.add(tab1,text=f'{" ":<{10}}First Tab{" ":<{10}}')
tabs.add(tab2,text=f'{" ":<{10}}Second Tab{" ":<{10}}')
在上面的代码中,我只放置了10个空格,根据您的需要增加了数字
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。