【问题标题】:How to expand ttk notebook label or tab button to fill window如何扩展 ttk 笔记本标签或选项卡按钮以填充窗口
【发布时间】:2021-01-06 04:45:27
【问题描述】:

我想扩展标签以填充窗口

例如我们在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()

【问题讨论】:

  • 您说要扩展标签,但您发布的代码中没有Label 小部件。您是在问如何展开笔记本选项卡?
  • @Bryan-Oakley 先生,我将标签称为标签名称。这就是我写标签或标签按钮的原因。
  • 您想只更改最后一个选项卡的宽度,还是更改所有选项卡的宽度?这个网站上已经有几个关于改变标签大小的问题,你做过研究吗?例如,这是否回答了您的问题? stackoverflow.com/q/20918625/7432
  • @Bryan-Oakley 先生,我想更改所有可用选项卡的宽度。先生,我做了一些研究。我不知道旧的 python 编码。所以我无法理解该代码。先生,请您在 3.x python 版本中写一个答案。
  • 我认为给出的重复帖子的语言根本不是python,我投票决定重新打开帖子

标签: python python-3.x tkinter ttk ttkwidgets


【解决方案1】:

第一个问题

我使用了一种样式来配置选项卡的宽度:

style = ttk.Style(root)
style.configure('TNotebook.Tab', width=1000)

因为我设置了一个非常大的宽度,所以窗口太小而无法完全显示所有选项卡,所以它们被缩小以适应,这正是想要的结果。 为保证tab宽度足够大,无论使用何种屏幕,都可以使用.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')])

但是,无法单独更改选项卡的背景颜色。为此,唯一的选择是使用按钮或标签作为选项卡编写您自己的笔记本小部件。

【讨论】:

    【解决方案2】:

    我在 ttk notebook 中没有找到任何增加选项卡空间的选项,但是我们可以通过一个简单的技巧来增加它的大小,如果你延长选项卡名称,它的空间也会增加,所以我们可以应用相同的方法来增加它的宽度,

    tabs.add(tab1, text=f'{"  ":<{10}}First Tab{"  ":<{10}}')
    tabs.add(tab2, text=f'{"  ":<{10}}Second Tab{"  ":<{10}}')
    

    在上面的代码中我只放了10个空格,根据你的需要增加数字

    【讨论】:

    • 你好@Arun-K 这无济于事,因为没有。选项卡是随机的。所以我不能固定宽度大小。
    • 不,你可以这样做,假设你可以声明 x=10,那么 tabs.add(tab1, text=f'{" ":
    • 感谢您的努力@Arun-K。但这不是专业的方式。如果我没有得到任何完美的答案,我会使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多