Python/wxPython:如何将wx.Choice重置为默认值
我正在使用wxPython中的多个wx.Choice控件,我需要一个重置按钮来恢复单击时的默认选项“-Select-”。 我无法做到这一点,最近的一次是重置为空选项,这不是我想要的。我希望在按下重置按钮时出现默认选项“-Select-”。请参阅下面的代码 data.pyPython/wxPython:如何将wx.Choice重置为默认值,python,python-2.7,wxpython,wxwidgets,wxtextctrl,Python,Python 2.7,Wxpython,Wxwidgets,Wxtextctrl,我正在使用wxPython中的多个wx.Choice控件,我需要一个重置按钮来恢复单击时的默认选项“-Select-”。 我无法做到这一点,最近的一次是重置为空选项,这不是我想要的。我希望在按下重置按钮时出现默认选项“-Select-”。请参阅下面的代码 data.py 提前感谢您的时间。请将您的源代码简化为下面解释的最小可运行示例 回答:我很惊讶wx.Choice.SetLabel“”做了一些有用的事情。您想做的是: self.Color_Options.SetStringSelect
提前感谢您的时间。请将您的源代码简化为下面解释的最小可运行示例 回答:我很惊讶wx.Choice.SetLabel“”做了一些有用的事情。您想做的是:
self.Color_Options.SetStringSelection(val)
请参阅wxChoice/wxItemContainer的详细信息
备注:在Python中,u'-Select-'不是'-Select-'。碰巧的是,如果源编码设置为UTF-8,wxPython将不会抱怨并理解UTF-8中的str encoden以及u
最小可运行示例:与以往一样重要:尽可能小的示例将教会您哪些部分与问题相关,哪些部分与问题无关。在许多情况下,通过写一个最小的例子,我常常自己找到答案
尽量减少你的例子:
import wx
class MyFrame1(wx.Frame):
def __init__(self, *args, **kwds):
wx.Frame.__init__(self, *args, **kwds)
pnl = wx.Panel(self, wx.ID_ANY)
szmain = wx.BoxSizer(wx.VERTICAL)
color_choices = [u"-- Select --", u"Red", u"Green", u"Pink", u"Blue", u"Yellow", u"White", u"Brown"]
self.color_options = wx.Choice(pnl, wx.ID_ANY, choices=color_choices)
self.color_options.SetSelection(0)
self.reset_button = wx.Button(pnl, wx.ID_ANY, u"Reset")
szmain.Add(self.color_options, 0, wx.ALL|wx.EXPAND, 4)
szmain.Add(self.reset_button, 0, wx.ALL|wx.EXPAND, 4)
pnl.SetSizer(szmain)
self.reset_button.Bind( wx.EVT_BUTTON, self.OnResetButton )
def OnResetButton(self, event):
val = '-- Select --' # NOT WORKING
# val = ' ' # THIS WORKS, BUT RESETS TO EMPTY CHOICE
self.color_options.SetLabel(val)
app = wx.App(0)
MyFrame1(None).Show()
app.MainLoop()
在转储代码时,最好只转储代码中有问题部分的最小示例,这样您就更有可能获得帮助。您不能在OnResetButton处理程序中调用self.Age_options.SetSelection0,还是我误解了您真正想要实现的目标?谢谢您的建议。调用SetSelection0实现了神奇的效果。谢谢你的意见。如果你认为答案对你的问题是正确的,你可以接受它,勾选upvote/downvote按钮下面的复选标记。
import wx
class MyFrame1(wx.Frame):
def __init__(self, *args, **kwds):
wx.Frame.__init__(self, *args, **kwds)
pnl = wx.Panel(self, wx.ID_ANY)
szmain = wx.BoxSizer(wx.VERTICAL)
color_choices = [u"-- Select --", u"Red", u"Green", u"Pink", u"Blue", u"Yellow", u"White", u"Brown"]
self.color_options = wx.Choice(pnl, wx.ID_ANY, choices=color_choices)
self.color_options.SetSelection(0)
self.reset_button = wx.Button(pnl, wx.ID_ANY, u"Reset")
szmain.Add(self.color_options, 0, wx.ALL|wx.EXPAND, 4)
szmain.Add(self.reset_button, 0, wx.ALL|wx.EXPAND, 4)
pnl.SetSizer(szmain)
self.reset_button.Bind( wx.EVT_BUTTON, self.OnResetButton )
def OnResetButton(self, event):
val = '-- Select --' # NOT WORKING
# val = ' ' # THIS WORKS, BUT RESETS TO EMPTY CHOICE
self.color_options.SetLabel(val)
app = wx.App(0)
MyFrame1(None).Show()
app.MainLoop()