python - 如何更新 Tix.ComboBox 的文本?

标签 python combobox tkinter tix

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

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

如何强制组合框将其值更新为新值,而不需要我按 Tab 键离开组合框?

我已经包含了示例代码。

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

最佳答案

哇! 我自己解决了。

使用

self.combo['selection']

而不是

self.combo['value']

关于python - 如何更新 Tix.ComboBox 的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/117211/

相关文章:

c++ - QT5 C++,有没有办法我可以在qlist容器中获取小部件的当前文本

python - Tkinter OptionMenu 已禁用但可扩展

python - Tkinter Canvas 不显示

python - 如何让 python base64 编码与 json 兼容?

python - 我的虚拟环境可以访问全局包

python - 通过属性使用具有依赖属性的数据类

wpf - 为什么无法在组合框中选择空值?

python - 如何在 EC2 服务器上连续运行 Python 脚本?

c# - 当对象用于显示时,组合框值在选择后消失

python - 在 tkinter 打开文件弹出窗口中指定 "this pc"作为初始目录