Как выровнять текст по правому краю в виджете ttk Treeview?

Я использую виджет ttk.Treeview для отображения списка арабских книг. Арабский язык — это язык с письмом справа налево, поэтому текст должен быть выровнен по правому краю. Опция выравнивания, доступная для Label и других виджетов ttk, похоже, не работает для Treeview.

Кто-нибудь знает как это сделать?


person peterv    schedule 22.05.2015    source источник


Ответы (2)


Виджет ttk.Treeview имеет параметр anchor, который вы можете установить для каждый столбец. Чтобы установить привязку столбца к правой стороне, используйте:

ttk.Treeview.column(column_id, anchor=Tkinter.E)
person fhdrsdg    schedule 22.05.2015

В дополнение к ответу @fhdrsdg здесь у вас есть простой пример использования:

# for python 3
import tkinter as tk  
from tkinter import ttk
from tkinter import messagebox


def show_info():
    messagebox.showinfo("More info", "First column represents the subject" \
                        " and the second represents its corresponding " \
                        "current number of tagged questions on Stack Overflow.")

root = tk.Tk()

tree = ttk.Treeview(root, columns=("Tags"), height=6)

subjects = {"Tkinter": "8,013",
            "Python": "425,865",
            "C++": "369,851",
            "Java": "858,459"}

for subject in subjects.keys():
    tree.insert("", "end", text=subject, values=(subjects[subject]))

tree.column("Tags", anchor="e")    
tree.pack(fill="both", expand=True)

informer = tk.Button(root, text="More info", command=show_info)
informer.pack(side="bottom")


root.mainloop()

Если вам нужна дополнительная помощь по использованию ttk.Treeview виджетов, загляните на эта ссылка от The New Mexico Tech или это руководство в TkDocs.

person nbro    schedule 22.05.2015