2011-12-07 13 views
2

私は、別の表示テキストウィジェットに入力されたものを渡すエントリーテキストウィジェットに焦点を当てたいと思っています。私はその部分が働いている。フォーカスのないTkinterテキストウィジェットのクリックした行を強調表示

誰かが表示テキストウィジェットをクリックしたときにクリックされた行が強調表示される(または行が背景色を変更する)が、エントリウィジェットにフォーカスが戻されるようにする方法を理解できません。私はまた、他のウィジェットで操作できるように、その行への参照を格納する必要があります。

ここにいくつかのサンプルコードがありますので、これまでの所見をご覧ください。私は今、GUIで多くのウィジェットやコードを持っているが、私は私の問題に関連するコードを掲載:あなたはこのようなものを使用することによってクリックされた行の先頭のインデックスを取得することができます

from Tkinter import * 

class GUI: 
    def __init__(self,root): 
     Window = Frame(root) 
     self.OutWidget = Text(Window, state='disabled') 
     self.InWidget = Text(Window,bg='black',bd=3,fg='white',exportselection=0,height=1,wrap=WORD,insertofftime=0,insertbackground="white") 
     self.OutWidget.pack() 
     self.InWidget.pack() 
     Window.pack() 
     self.InWidget.focus_set() 
     self.OutWidget.bind("<Button 1>",self.Select) 
     self.InWidget.bind("<Return>", self.Post) 

    def Post(self,event): 
     text = self.InWidget.get(1.0,2.0) 
     self.InWidget.delete(1.0,2.0) 
     self.OutWidget['state'] = ['normal'] 
     self.OutWidget.insert('end',text) 
     self.OutWidget['state'] = ['disabled'] 
     return ("break") 

    def Select(self,event): 
     #highlight the CURRENT line 
     #store a reference to the line 
     #return focus to InWidget 
     self.InWidget.focus() 
     return ("break") 

if __name__ == '__main__': 
    root = Tk() 
    App = GUI(root) 
    root.mainloop() 

答えて

4

:あなたはこのようなもので、「ハイライト」タグの付いた項目の色を設定することができます

line_end = self.OutWidget.index("%s lineend" % line_start) 
self.OutWidget.tag_remove("highlight", 1.0, "end") 
self.OutWidget.tag_add("highlight", line_start, line_end) 

line_start = self.OutWidget.index("@%s,%s linestart" % (event.x, event.y)) 

あなたはこのようなもので、その行にタグを適用することにより、ハイライト表示を追加することができます:あなたはこのようなもので背中他のウィンドウにフォーカスを移動することができ

self.OutWidget.tag_configure("highlight", background="bisque") 

self.InWidget.focus_set() 
+0

ブライアン、あなたが男性の間の神です、私はに十分に学ぶことができただろう方法はありませんあなたの継続的な助けなしにこのプロジェクトを終了してください。ありがとうございました。 – Symon

+0

@Symon、私は彼のすべてのTkinterの質問に彼に事前に感謝するようにほとんど誘惑されています:P – DuckPuncher

+0

@Symonそれは可能ですか?変数に強調表示されたテキストを保存することは可能でしょうか? – Fahadkalis