在提交表单(或单击提交按钮)之前,我需要填写一个字段,特别是wx.choice
。我不知道应该使用的代码行。
研究使我想到了wx.validator
函数。这是正确的吗?
我没有可用的代码。
我希望如果按下提交按钮,并且没有选择特定的wx.choice
,那么用户将收到一个错误/对话,要求他们进行选择。
答案 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()