Python 2.7和Tkinter / tkk:Notebook标签文本顶部对齐

时间:2016-12-13 07:24:13

标签: python macos python-2.7 tkinter tabs

出于某种原因,运行代码时,我的tkk notebook标签中的字体是顶部对齐的。我在macOS 10.11.6上使用python 2.7。这就是它的样子:

Tab font top-aligned in ttk notebook

考虑到ttk的原始本土外观,这是一种新生。

是否有人知道如何调整主题/风格以解决此问题或完全解决此问题?

这是我的代码:

import Tkinter as tk
import ttk

win = tk.Tk()
frame = ttk.Frame()
win.title("Python GUI")


tabControl = ttk.Notebook(win)
tab1 = ttk.Frame(tabControl)
tabControl.add(tab1, text='Tab 1')
tab2 = ttk.Frame(tabControl)
tabControl.add(tab2, text="Tab2")

ttk.Label(tab1, text="Hello, this is a tab").grid(column=0, row=0)
ttk.Label(tab2, text="Hello, this is another tab").grid(column=0, row=0)

tabControl.pack(expand=0, fill="both")

win.mainloop()

1 个答案:

答案 0 :(得分:0)

由于我无法重新创建您遇到的错误,因此有点难以说明。我认为最好的选择是创建自定义主题,然后更改选项卡的布局选项

import Tkinter as tk
import ttk

win = tk.Tk()
frame = ttk.Frame()
style = ttk.Style()



style.theme_create("custom_tabs", parent="alt", settings={
    "TNotebook.Tab": {
        "configure": {"padding": [10, 10, 10, 10]}
        }})

style.theme_use("custom_tabs")
win.title("Python GUI")



tabControl = ttk.Notebook(win)
tab1 = ttk.Frame(tabControl)
tabControl.add(tab1, text='Tab 1')
tab2 = ttk.Frame(tabControl)
tabControl.add(tab2, text="Tab2")

ttk.Label(tab1, text="Hello, this is a tab").grid(column=0, row=0)
ttk.Label(tab2, text="Hello, this is another tab").grid(column=0, row=0)

tabControl.pack(expand=0, fill="both")

win.mainloop()

只需根据需要更改填充,值如下: [左边填充,顶部填充,右边填充,底部填充]