在下一个事件之前,如何选择所需的wx.choice?

时间:2019-04-23 14:29:23

标签: wxpython

在提交表单(或单击提交按钮)之前,我需要填写一个字段,特别是wx.choice。我不知道应该使用的代码行。

研究使我想到了wx.validator函数。这是正确的吗?

我没有可用的代码。

我希望如果按下提交按钮,并且没有选择特定的wx.choice,那么用户将收到一个错误/对话,要求他们进行选择。

1 个答案:

答案 0 :(得分:0)

比这简单得多。
激活“保存/提交”代码时,请检查是否已做出有效选择。 例如

import wx
class My_Class(wx.Frame):

    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self,size=(510,300), *args, **kwargs)
        self.mychoices=["choose","choice 1","choice 2","choice 3"]
        self.panel = wx.Panel(self)
        self.message = wx.StaticText(self.panel, wx.ID_ANY, ("Make a Choice"),pos=(10,20))
        self.choose = wx.Choice(self.panel, wx.ID_ANY, choices=self.mychoices,pos=(120,20),size=(80,30))
        self.save = wx.Button(self.panel, wx.ID_ANY, "Save",pos=(120,50),size=(50,30))
        self.choose.SetSelection(0)
        self.save.Bind(wx.EVT_BUTTON, self.OnSave)
        self.Show()

    def OnSave(self,event):
        choice = self.choose.GetSelection()
        text = self.choose.GetString(choice)
        if choice < 1:
            wx.MessageBox('You have not made a choice - Save cancelled!', 'Error', wx.OK | wx.ICON_INFORMATION)
            return
        else:
            wx.MessageBox('Your submission '+text+' as been activated!', 'Success', wx.OK | wx.ICON_INFORMATION)

if __name__ == '__main__':
    app = wx.App()
    frame = My_Class(None)
    app.MainLoop()

enter image description here