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 つの異なるツリービューにバインドする方法はありますか? これまでの試みはすべて失敗しており、スクロールバーでツリービューの1つだけを移動できます。3 つのツリービューにバインドすることは可能ですか? (はいの場合: どのように?, 価値がある?, 私はすべきですか?)
また、別の問題: ツリービューの境界線を削除しようとするすべての試みが TTK python で失敗しました。
もう 1 つの問題は、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 +".")