문제

편집 가능한 텍스트 필드가 있는 Tix.ComboBox가 있습니다.텍스트 값을 보유하는 변수를 강제로 업데이트하려면 어떻게 해야 합니까?

좀 더 구체적인 설명을 해보자.콤보 상자와 버튼이 있습니다.버튼을 클릭하면 콤보 상자의 값이 포함된 메시지 상자가 나타납니다.현재 콤보 상자 텍스트 필드의 값이 "thing1"이라고 가정해 보겠습니다.상자에 "new"를 입력하고 마우스로 버튼을 클릭하면 "thing1"이라는 메시지가 나타납니다.상자에 "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()
도움이 되었습니까?

해결책

우!스스로 해결했습니다.

사용

self.combo['selection']

대신에

self.combo['value']

다른 팁

메모:선택한 답변으로 선택할 수 있는 Moe의 답변 사본

우!스스로 해결했습니다.

사용

self.combo['selection']

대신에

self.combo['value']
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top