سؤال

لقد كنت أستخدم TIX لإنشاء مجموعة من الكوارث وتسبب تعطل متقطع إذا تم ترك مربع الإدخال فارغا.

أنا جديد على Python و Gui Programming، لذلك كنت أستخدم مثال لتعليم نفسي الأشياء.

عند استخدام رمز المثال التالي، يجب أن تكون قادرا على إدخال قيمة في مربع الإدخال أو تحديد نموذج القائمة المنسدلة، ولكن إذا تركت حقل الإدخال فارغ واضغط عليه، فسيؤدي إلى تعطل Python. giveacodicetagpre.

========================= تفاصيل التعطل: giveacodicetagpre.

حتى

a] هل هو شيء يفعل المثال الخطأ؟

b] هل هناك طريقة أفضل؟

c] يجب أن أستخدم TIX على الإطلاق؟

لقد لاحظت أن بعض الأشخاص يبدو أنهم يخجلون من TIX واستخدام Tkinter فقط. هل هناك سبب لذلك؟ يجب أن لا أستخدم TIX؟

+++++++++++++++++++++++++++++++

حسنا، لذلك تمكنت من معرفة ذلك من خلال إضافة قيمة= '' حتى لا تكون سلسلة الإرجاع فارغة ثم LSTRIP () القيمة عندما أحتاج إليها. giveacodicetagpre.

قبيح للغاية ولكن يمنعني من التعطل الآن؛ حتى شخص ما يمكن أن يعطيني أكثر إجابة أفضل. إذا قام المستخدم بحذف المساحة ثم يضغط على "GO"، فسوف يتسبب في تعطل السبب مرة أخرى!

هل كانت مفيدة؟

المحلول

I am not Tix expert, but this should fix the problem:

tkMessageBox.showinfo('info', self.combo.entry.get())

In between the lines, I would recommend using wxPython for learning GUI programming. It was great for me as a learning environment.

import wx

class MainWin(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.combo = wx.ComboBox(self, choices=["Thing 1", "Thing 2"])      
        self.button = wx.Button(self, label="Go")
        self.button.Bind(wx.EVT_BUTTON, self.OnButton)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.combo, 0, wx.EXPAND)
        self.sizer.Add(self.button, 0, wx.EXPAND)
        self.SetSizerAndFit(self.sizer)     

        self.Show()

    def OnButton(self, e):
        wx.MessageBox(self.combo.GetValue())

app = wx.App(False)
main_win = MainWin(None)
app.MainLoop()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top