Я работаю над меню настроек. Я использую блокнот 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()
Это все еще не решает мою проблему. Я хочу выровнять «ярлык» вкладки влево при вертикальной укладке.