سؤال

لدي Tix.ComboBox مع حقل نصي قابل للتحرير.كيف أجبر المتغير الذي يحتفظ بقيمة النص على التحديث؟

اسمحوا لي أن أقدم تفسيرا أكثر تحديدا.لدي مربع تحرير وسرد وزر.عندما أقوم بالنقر فوق الزر، يظهر مربع رسالة بقيمة مربع التحرير والسرد.لنفترض أن حقل نص مربع التحرير والسرد يحتوي حاليًا على القيمة "thing1".إذا كتبت "جديد" في المربع ثم قمت بالنقر فوق الزر بالماوس، فستنبثق الرسالة "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()
هل كانت مفيدة؟

المحلول

وو!حلها بمفردي.

يستخدم

self.combo['selection']

بدلاً من

self.combo['value']

نصائح أخرى

ملحوظة:نسخة من إجابة Mo التي يمكن تحديدها كإجابة مختارة

وو!حلها بمفردي.

يستخدم

self.combo['selection']

بدلاً من

self.combo['value']
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top