2

我有一个带有可编辑文本字段的 Tix.ComboBox。如何强制保存文本值的变量更新?

让我做一个更具体的解释。我有一个组合框和一个按钮。当我单击该按钮时,它会弹出一个带有组合框值的消息框。假设组合框文本字段当前的值为“thing1”。如果我在框中输入“new”,然后用鼠标单击按钮,它将弹出消息“thing1”。如果我在框中键入“新”,然后将焦点从组合框移开,然后单击按钮,弹出消息会显示“新”。

我如何强制组合框将其值更新为新的而不需要我从组合框上移开标签?

我已经包含了示例代码。

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()
4

2 回答 2

5

呜!我自己解决了。

采用

self.combo['selection']

代替

self.combo['value']
于 2008-09-22T20:24:50.063 回答
1

注意:可以选择作为选择答案的 Moe 答案的副本

呜!我自己解决了。

采用

self.combo['selection']

代替

self.combo['value']
于 2008-10-16T01:22:20.983 回答