是否可以将ttk笔记本选项卡的名称向左对齐?

时间:2020-04-17 13:06:30

标签: python tkinter ttk

我正在设置菜单上。我使用的是带有不同类别标签的ttk笔记本,某些类别的名称长于其他类别。默认情况下,名称靠右对齐,使其看起来像这样: Visual of what it looks like 我希望它们在左侧而不是右侧对齐。

根据我的研究,我了解到您必须使用style.theme_create(...)来创建新样式。因为我已经在使用主题,所以这不符合我的要求。我想编辑它,而不是创建一个新的。

例如,我尝试了几种方式编辑样式,但均未成功(这只是测试代码):

from Tkinter import *
import ttk

root = Tk()
style = ttk.Style(root)
style.configure('lefttab.TNotebook', tabposition='wn') # wn because I want the tab to be vertical (on the side not the top)
style.configure('TNotebook.Tab', align=LEFT)
notebook = ttk.Notebook(root, style='lefttab.TNotebook')
f1 = Frame(notebook, bg='red', width=200, height=200)
f2 = Frame(notebook, bg='blue', width=200, height=200)
Label(f1, text="Test").grid(column=3, row=1, sticky=S)
notebook.add(f1, text='short')
notebook.add(f2, text='Loooooong')
notebook.pack()
root.mainloop()

代码结果如下:alignment test

我的假设是我没有为style.configure(...)使用正确的参数

编辑#1: 在我尝试使用align解决无法解决的问题之前。现在,我还尝试了stickyfill=X,如以下代码所示:

from Tkinter import *
import ttk
myred = "#dd0202"
mygreen = "#d2ffd2"
root = Tk()
style = ttk.Style(root)
style.configure('lefttab.TNotebook', tabposition='wn')
style.configure('TNotebook', sticky=W, fill=X )
#style.configure('TNotebook.Tab', align=LEFT)
#style.configure("TNotebook", background=myred)

notebook = ttk.Notebook(root, style='lefttab.TNotebook')
f1 = Frame(notebook, bg='red', width=200, height=200)
f2 = Frame(notebook, bg='blue', width=200, height=200)
notebook.add(f1, text='short',sticky=W)
notebook.add(f2, text='Loooooong', sticky=W)
notebook.pack()
root.mainloop()

这仍然不能解决我的问题。当垂直堆叠时,我想将标签的“标签”对齐到左侧。

0 个答案:

没有答案