Combobox wxpython掩码组合的返回类型

Combobox wxpython掩码组合的返回类型,combobox,wxpython,Combobox,Wxpython,我对wxpython有一个令人沮丧的问题。我一直在尝试使用wx.lib.masked中的masked组合框,但每当我尝试将其返回值与字符串进行比较时,结果总是False,即使字符串与组合框中的返回值相同。使用通常的组合框,一切都按预期进行。那么,蒙面组合框有什么问题 下面是一段测试代码: import wx import wx.lib.masked as masked class TestMasked(wx.Panel): def __init__(self, parent):

我对wxpython有一个令人沮丧的问题。我一直在尝试使用wx.lib.masked中的masked组合框,但每当我尝试将其返回值与字符串进行比较时,结果总是False,即使字符串与组合框中的返回值相同。使用通常的组合框,一切都按预期进行。那么,蒙面组合框有什么问题

下面是一段测试代码:

import wx
import wx.lib.masked as masked

class TestMasked(wx.Panel):
    def __init__(self, parent):
         wx.Panel.__init__(self, parent, id=wx.ID_ANY)
         choices = ['one', 'two', 'three']
         self.combo_box_masked = masked.Ctrl( self, -1,
                              controlType = masked.controlTypes.COMBO,
                              choices = choices,
                              autoSelect=True
                              )
         self.combo_box_masked.SetCtrlParameters(formatcodes = 'F!V_')
         self.Bind(wx.EVT_COMBOBOX, self.EvtComboMasked, self.combo_box_masked)
         self.combo_box = wx.ComboBox(self, wx.ID_ANY, choices=choices)
         self.Bind(wx.EVT_COMBOBOX, self.EvtCombo, self.combo_box)
         sizer = wx.BoxSizer(wx.VERTICAL)
         sizer.Add(self.combo_box_masked, 1, wx.ALL, 5)
         sizer.Add(self.combo_box, 1, wx.ALL, 5)
         self.SetSizerAndFit(sizer)

    def EvtCombo(self, event):
        one_combo = self.combo_box.GetValue()
        one_str = 'one'
        print one_combo == one_str

    def EvtComboMasked(self, event):
        one_combo = self.combo_box_masked.GetValue()
        one_str = 'one'
        print one_combo == one_str

class DemoFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Test Masked")
        panel = TestMasked(self)
        self.SetSize((500,500))
        self.Center()
        self.Show()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = DemoFrame()
    app.MainLoop()

不同之处在于掩码组合返回以下内容:

'one          '
请注意,它不是“一”,而是后面有一堆空格的“一”

只需在调用末尾添加一个.strip():

self.combo_box_masked.GetValue().strip()

那会解决的。

是的,你说得对。非常感谢。很抱歉花了这么长时间回答。我刚看到你的答案。我想我错过了关于你回复的电子邮件。