1

ttk.Treeview 列のテキストを正当化する方法を知りたいです。以下は、私が意味するものの例です。日付と、数字が互いに適切に配置されていないことに注意してください。間隔と関係があると思いますが、間違っている可能性があります。

編集: Python 3 で書かれています。

#! coding=utf-8
import pickle
import matplotlib.pyplot as plt
import tkinter as tk
from tkinter import ttk

# Create Example
root = tk.Tk()
root.minsize(200,300)
tree = ttk.Treeview(root,columns=("date"))
tree.heading("#0"  , text='Sample', anchor=tk.W)
tree.column("#0", stretch=0)
tree.heading("date", text='Date', anchor=tk.E)
tree.column("date", stretch=0)

ABC   = ["A","B","C","D","E"]
dates = ["3.4.2013", "14.10.400", "24.12.1234", "1.10.1", "14.7.123"]
tree.insert("",iid="1", index="end",text="No Format")
for i in range(len(ABC)):
dates2 = dates[i].split(".")
    date   = "{:<2}.{:<2}.{:<4}".format(dates2[0],dates2[1],dates2[2])
    tree.insert("1",iid="1"+str(i), index="end",text=ABC[i], value=[dates[i]])
tree.see("14")
tree.insert("",iid="2", index="end",text="With Format")
for i in range(len(ABC)):
    dates2 = dates[i].split(".")
    date   = "{:>2}.{:>2}.{:>4}".format(dates2[0],dates2[1],dates2[2])
    tree.insert("2",iid="2"+str(i), index="end",text=ABC[i], value=[date])
tree.see("24")

tree.pack(expand=True,fill=tk.BOTH)

root.mainloop()
4

2 に答える 2

3

次を使用して等幅フォントを使用しtkinter.ttk.Treeview.tag_configureます。

...
for i in range(len(ABC)):
    dates2 = dates[i].split(".")
    date   = "{:>2}.{:>2}.{:>4}".format(dates2[0],dates2[1],dates2[2])
    tree.insert("2",iid="2"+str(i), index="end",text=ABC[i], value=[date],
                tag='monospace') # <----
tree.tag_configure('monospace', font='courier') # <----
...

タグ オプションを参照してください。

于 2013-10-10T10:12:24.523 に答える
0

アンカー オプションを使用して日付見出しのテキストを両端揃えしたのと同じ方法で、日付列のテキストを両端揃えにすることができます。

tree.heading("date", text='Date', anchor=tk.E)
tree.column("date", stretch=0, anchor=tk.E)

headingおよびcolumnメソッドのアンカーとその他のオプションの詳細については、Tkinter 8.5 リファレンス: New Mexico Techの Python 用 GUI を参照してください。

于 2014-10-23T23:14:43.717 に答える