如何更新Tix.ComboBox的文本?
我有一个可编辑的下拉框(Tix.ComboBox)。我想知道怎么才能让存储文本值的变量更新。
让我更具体地解释一下。我有一个下拉框和一个按钮。当我点击这个按钮时,会弹出一个消息框,显示下拉框的值。比如说,下拉框的文本框现在显示的是“thing1”。如果我在框里输入“new”,然后用鼠标点击按钮,弹出的消息框还是显示“thing1”。但如果我在框里输入“new”,然后按Tab键切换到其他地方,再点击按钮,弹出的消息框就会显示“new”。
我想知道怎么才能让下拉框的值更新为“new”,而不需要我先切换到其他地方。
我附上了示例代码。
import Tix
import tkMessageBox
class App(object):
def __init__(self, window):
window.winfo_toplevel().wm_title("test")
self.window = window
self.combo = Tix.ComboBox(window)
self.combo.insert(Tix.END, 'thing1')
self.combo.insert(Tix.END, 'thing2')
self.combo.entry['state'] = "normal"
self.combo['editable'] = True
self.combo.pack()
button = Tix.Button(window)
button['text'] = "Go"
button['command'] = self.go
button.pack()
def go(self):
tkMessageBox.showinfo('info', self.combo['value'])
if __name__ == '__main__':
root = Tix.Tk()
App(root)
root.mainloop()
2 个回答
1
注意:这是Moe的回答的复制,可以被选为最佳答案
太棒了!我自己解决了这个问题。
使用
self.combo['selection']
而不是
self.combo['value']
5
哇!我自己解决了这个问题。
使用
self.combo['selection']
而不是
self.combo['value']