0

TixBalloonを使用してGUIでツールチップを生成しています。一部のエントリウィジェットでは、ツールチップまたはステータスメッセージをStringVar()変数のテキストにします。したがって、コードは次のようになります。

from Tkinter import *
from Tix import *
root = Tk()
status = Label(root, height = 3, width=30, bd=1,bg='yellow',wraplength = 210)
status.grid(row = 0,column = 0,pady = 10)
bal = Balloon(root,statusbar = status)
frame_1 = Frame(root,relief=RIDGE,bd = 2)
frame_1.grid(row=1,column = 0)
Angles = [StringVar(),StringVar()]
Angles[0].set('0')
Angles[1].set('1')

#Incomming
label_in = Label(frame_1,text = "TH_in")
label_in.grid(row = 0,column = 0)

entry_in = Entry(frame_1, width = 20, textvariable = Angles[0])
entry_in.grid(row = 0,column = 1)

#Outgoing
label_out = Label(frame_1,text = "TH_out")
label_out.grid(row = 1,column = 0)

entry_out = Entry(frame_1, width = 20, textvariable = Angles[1])
entry_out.grid(row=1,column=1)

#tool tip / status bar
bal.bind_widget(label_in,balloonmsg='Incidence Angle',statusmsg = Angles[0].get())
bal.bind_widget(label_out,balloonmsg='Detector Angle',statusmsg = Angles[1].get())
root.mainloop()

ただし、これはステータスボックスに「Angles[0]」と「Angles[1]」の元の値のみを表示し、入力ボックスのテキストが変更されたときに更新されません。

4

2 に答える 2

2

StringVar.traceStringVarが変更されるたびに呼び出されるコールバックをバインドするために使用できます。おそらく、そのコールバックを使用してstatusmsginを変更することができます(ただし、とbalについては何も知らないので、間違っている可能性があります)。TixBalloon

于 2012-11-01T15:09:58.453 に答える
1

バルーンTixウィジェットは、実際のTkinter/Tixウィジェットで構成されるメガウィジェットです。

Labelを介してメッセージを取得できるため、との間bal.subwidget('message')で変数を共有できます。EntryBalloonLabel

bal.subwidget('message')["textvariable"] = Angles[0]

ただし、ラベルはバルーンインスタンスのすべてのツールチップ間で共有されるBalloonため、エントリとツールチップのペアごとにインスタンスが必要になります。message

于 2012-11-01T18:24:32.323 に答える