Можно ли выровнять название вкладки ttk notebook по левому краю? - PullRequest
1 голос
/ 17 апреля 2020

Я работаю над меню настроек. Я использую блокнот ttk с вкладками для разных категорий, некоторые категории ie имен длиннее других. По умолчанию имена выравниваются по правому краю, в результате чего это выглядит следующим образом: Визуальный вид того, как это выглядит Я хочу, чтобы они выравнивались слева, а не справа.

Из моего исследования я понимаю, что вы должны использовать 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()

Результат кода следующий: тест выравнивания

Я предполагаю, что я не использую правильные параметры для style.configure(...)

Edit # 1: Прежде чем я попытался использовать align, чтобы решить мою проблему, которая не работала. Теперь я также попробовал sticky и fill=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()

Это все еще не решает мою проблему. Я хочу выровнять «ярлык» вкладки влево при вертикальной укладке.

...