【问题标题】:Cannot see all tabs in ttk.Notebook无法查看 ttk.Notebook 中的所有选项卡
【发布时间】:2016-07-20 01:27:39
【问题描述】:

我在 python 2.7 中的 ttk Notebook 类的选项卡上遇到了一些问题。 我看不到我创建的所有选项卡。

我做了一个最小的代码来查看问题:

from Tkinter import *
import ttk

root = Tk()
nb = ttk.Notebook(root, width=320, height=240)
nb.pack(fill=BOTH, expand=1)
page0 = Frame(nb)
page1 = Frame(nb)
page2 = Frame(nb)
page3 = Frame(nb)
page4 = Frame(nb)
nb.add(page0, text="0")
nb.add(page1, text="1")
nb.add(page2, text="2")
nb.add(page3, text="3")
nb.add(page4, text="4")

root.mainloop()

我只能看到

我尝试更改选项卡的数量,但我注意到顶部选项卡栏的大小发生了变化,除非只有一个单独的选项卡,否则我无法看到所有选项卡,如您所见:

我尝试过的没有任何作用:

  • 设置标签宽度
  • 移动 .pack()
  • 将 .pack() 添加到选项卡中
  • 使用 ttk.Frame 代替 tk.Frame
  • 谷歌搜索类似问题

我尝试过的方法有效,但不是我想要的:

  • 不使用标签(显示的东西太多)
  • 只有一个标签

我将不胜感激,谢谢!

【问题讨论】:

  • 这看起来像是 ttk 中的一个错误。如果您在每个标签的前面或后面添加一个空格(例如:text=" 1",它们都会显示出来。
  • @BryanOakley 在 Windows 上,情况更糟。我需要在4 后面留 6 个空格才能在标签上看到 4 和其他人一样。
  • 我打开 bugs.python.org/issue26682 关于这个问题,主要是作为错误的文档。
  • 我在 Windows 7 Enterprise 64bit 上执行此操作。我需要在数字前添加 4 个空格。当我尝试在家中执行此操作时,它使用单个字符(windows 7 pro 64bits)。 python的具体版本我没有看,但是我工作用的那个已经安装了。

标签: python python-2.7 tkinter tabs ttk


【解决方案1】:

所以我确实解决了你的问题,但是我不知道为什么 tk 会这样做。我通过增加标签文本的长度解决了这个标签重叠问题。我更改了您的这部分代码:

nb.add(page0, text="long_name1")
nb.add(page1, text="long_name2")
nb.add(page2, text="long_name3")
nb.add(page3, text="long_name4")
nb.add(page4, text="long_name5")

再一次,我不知道为什么 tk 会这样做!对 tk 更有经验的人可能会告诉你原因。

【讨论】:

  • 通过缩小你的长名称,最小的工作是 3 个字符,第一个和最后一个非空白。
  • 感谢您的帮助!我必须至少使用 5 个字符才能看到所有选项卡。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
相关资源
最近更新 更多