我正在使用treeview
Python 中的多列来做一个聊天客户端。
这是代码treeview
:
chat = ttk.Treeview(height="26", columns=("Nick","Mensaje","Hora"), selectmode="extended")
chat.heading('#1', text='Nick', anchor=W)
chat.heading('#2', text='Mensaje', anchor=W)
chat.heading('#3', text='Hora', anchor=W)
chat.column('#1', stretch=NO, minwidth=0, width=130)
chat.column('#2', stretch=NO, minwidth=0, width=620)
chat.column('#3', stretch=NO, minwidth=0, width=65)
chat.column('#0', stretch=NO, minwidth=0, width=0) #width 0 to not display it
我添加了这样的项目:
chat.insert("", "end", "", values=((user, message, time)), tags=(messageid))
chat.tag_configure(messageid, foreground='#ff0000')
现在,它完美地工作了(这里以屏幕截图为例):但最后一行代码改变了该行中所有 3 列的颜色。我想要的是仅更改 #2 列(仅消息)而不是整行(不是 Nick 或 Time 列)的文本颜色。我尝试了很长时间,但现在是凌晨 4 点,我投降了 ☹ 有什么办法吗?
2周后更新
现在我尝试做 3 个不同的树视图(每个 1 列)并以这种方式结束: 虽然这解决了颜色问题,但我有一个新问题:滚动条。有没有办法将滚动条绑定到 3 个不同的树视图?到目前为止,我所有的尝试都失败了,我只能移动一个带有滚动条的树视图。可以绑定到 3 个树视图吗?(如果是:如何?,值得?,我应该吗?)
还有另一个问题:在 TTK python 中,所有删除树视图边框的尝试都失败了。
另一个问题是现在 Mensaje 树视图只显示第一个单词。不知道为什么 :\ 这是关于第一个单词问题的新代码。
chat2 = ttk.Treeview(height="28", columns="Mensaje", selectmode="extended")
chat2.heading('#1', text='Mensaje', anchor=CENTER)
chat2.column('#1', stretch=NO, minwidth=400, width=620)
chat2.column('#0', stretch=NO, minwidth=0, width=0)
这继续消息:
BotGUI.chat2.insert("", "end", iid=(idmensajeactual), values=mensaje, tags=(messageid))
try:
BotGUI.chat2.tag_configure(messageid, foreground='#'+colorfuente) #tfl
except TclError:
print("[Error02] - can't assign colour of "+ usuario +".")