【问题标题】:How do I hide the entire tab bar in a tkinter ttk.Notebook widget?如何在 tkinter ttk.Notebook 小部件中隐藏整个标签栏?
【发布时间】:2021-11-15 22:48:49
【问题描述】:

如何在 ttk Notebook 小部件中隐藏标签栏?我不想隐藏属于选项卡的框架。我只想从视线中移除标签栏,即使它不在屏幕顶部(用于多个目的)。

无论如何,全屏模式会很好。

【问题讨论】:

  • 隐藏标签栏对于同时使用包和网格没有影响。您始终可以在 pack 管理的小部件内使用网格。
  • @BryanOakley 我不是说隐藏栏允许您使用grid。我的意思是使用Notebook 允许您使用grid(并且删除标签栏有效地使它像Frame 在布局方面的功能不同)。当我尝试在包装好的东西中使用grid 时,它总是向我抱怨它是如何被包含由pack 管理的奴隶的东西处理的。
  • Frame 抱怨我的代码不会用Notebook 抱怨这就是我所说的。标签栏只是我希望能够删除的视觉额外内容。但是,我更想将其删除为全屏而不是 Notebooks 与布局一起使用。
  • @BryanOakley 你是对的。我只是不小心在Frame 上使用了grid,而不仅仅是Frame 里面的东西。无论如何,我会编辑不。 2 出问题。

标签: python tkinter fullscreen ttk


【解决方案1】:

来自 tkinter.ttk.Style 的帮助:

layout(self, style, layoutspec=None)

为给定样式定义小部件布局。如果layoutspec 被省略,则返回给定样式的布局规范。

layoutspec 应该是与 None 不同的列表或对象,如果您想“关闭”该样式,则计算结果为 False

试试这个:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

style = ttk.Style()

style.layout('TNotebook.Tab', []) # turn off tabs

note = ttk.Notebook(root)

f1 = ttk.Frame(note)
txt = tk.Text(f1, width=40, height=10)
txt.insert('end', 'Page 0 : a text widget')
txt.pack(expand=1, fill='both')
note.add(f1)

f2 = ttk.Frame(note)
lbl = tk.Label(f2, text='Page 1 : a label')
lbl.pack(expand=1, fill='both')
note.add(f2)

note.pack(expand=1, fill='both', padx=5, pady=5)

def do_something():
    note.select(1)
               
root.after(3000, do_something)
root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多