文本为“这是太长的文本”。 如您所见,该视图提供了一个水平扩展选项,但没有迹象表明还有更多字符。
我需要给用户一些提示,指出单元格中还有更多字符。 即显示“ ...”。
这是代码:
from tkinter import ttk
import tkinter as tk
win = tk.Tk()
win.resizable(width=0, height=0)
tree = ttk.Treeview(win, selectmode='browse')
tree.grid(row=0, column=0)
vsb = ttk.Scrollbar(win, orient="horizontal", command=tree.xview)
vsb.grid(row=1, column=0, sticky=tk.W + tk.E + tk.N + tk.S)
tree.configure(xscrollcommand=vsb.set)
vsb = ttk.Scrollbar(win, orient="vertical", command=tree.yview)
vsb.grid(row=0, column=1, sticky=tk.W + tk.E + tk.N + tk.S)
tree.configure(yscrollcommand=vsb.set)
tree["columns"] = ("1", "2")
tree['show'] = 'headings'
tree.column("1", anchor='c')
tree.column("2", width=100, anchor='c')
tree.heading("1", text="Col 1")
tree.heading("2", text="Col 2")
tree.insert("", 'end', text="L4", values=("This text is too long","Short text"))
win.mainloop()
答案 0 :(得分:3)
更新:
结果证明我们可以将 protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) throws BeansException {
super.processProperties(beanFactory, props);
propertiesMap = new HashMap<String, String>();
for (Object key : props.keySet()) {
String keyStr = key.toString();
String valueStr = resolvePlaceholder(keyStr, props, springSystemPropertiesMode);
propertiesMap.put(keyStr, valueStr);
}
}
绑定到树视图,如这篇文章中所述:how-to-detect-resizing-of-ttk-treeview-column @stovfl在评论中指出。因此,我以更少的开销更新了答案:D。
我创建了一个方法,该方法将检查列宽是否已更改,然后检查是否计算了每一行以查看是否需要在末尾添加'<ButtonRelease-1>'
。
这是通过...
中的ImageFont
完成的,出于某种原因,认为Treeview字体和PIL字体之间存在接缝大小差异。经过一些测试之后,看来您在Treeview样式中设置的任何字体大小只需将PIL字体加5,它就可以正确计算。
PIL
结果:
添加新行:
删除行: