我正在为我的tkinter程序制作一个树视图,当我将数据插入其中时,有些行的字符太多而且其中一些是看不见的。
有没有办法为行高设置自动换行?我不想添加水平滚动条来解决这个问题。这意味着当字符串的宽度更大时,应该使用换行符(自动)来标记。在这种情况下,行的高度应该自动调整(在这种情况下),以显示多行。
from tkinter import *
import tkinter.ttk as ttk
root = Tk()
frame = Frame(root)
frame.pack()
tree = ttk.Treeview(frame, height=15,
columns=('c1', 'c2'),
show="headings")
tree.column('c1', width=100, anchor='center')
tree.column('c2', width=200, anchor='center')
tree.heading('c1', text='text1')
tree.heading('c2', text='text2')
tree.pack()
tree.insert('', 1, values=['edew', 'dewd'])
tree.insert('', 2, values=['abcd'*10, 'wxyz'*10])
root.resizable(width=False, height=False)
root.mainloop()
答案 0 :(得分:1)
可以使用此代码修改alls行的高度。
root = Tk()
style = ttk.Style(root)
style.configure('Treeview', rowheight=45)
很高兴知道Treeview中的每一行是否都有自己的风格来定义单独的rowheight(取决于换行符)。
答案 1 :(得分:0)
回应Aleksandar Beat的问题:
为了更改特定Treeview
的样式,您必须在ttk小部件名称之前定义其他标识符:
Style().configure('AnythingYouWantHere.Treeview', rowheight=45)
# The '.Treeview' can not be changed
但是,如果采用这种方式,则必须指定ttk小部件的style
选项。
样品用量:
root = Tk()
Style().configure('MyStyle1.Treeview', rowheight=45)
styledTreeView = Treeview(root, style='MyStyle1.Treeview')
normalTreeView = Treeview(root) # Style will not automatically apply
这也适用于所有ttk小部件。