是否有可能;“设置”;组合框的列表,wxpython?

是否有可能;“设置”;组合框的列表,wxpython?,python,wxpython,Python,Wxpython,嗨,我知道可以用列表来做这件事,但是可以用组合框来做吗?有什么类似于set函数的吗 我已尝试将set与组合框一起使用,但收到以下错误: AttributeError:“ComboBox”对象没有属性“Set” 谢谢。嗯,您可以调用SetItems(myList)将列表放入组合框,覆盖其中已有的内容 编辑:在组合框列表中创建列表的最常用方法如下: myList = ["dog", "cat", "hamster"] cbo = wx.ComboBox(self, choices=myList)

嗨,我知道可以用列表来做这件事,但是可以用组合框来做吗?有什么类似于set函数的吗

我已尝试将set与组合框一起使用,但收到以下错误: AttributeError:“ComboBox”对象没有属性“Set”


谢谢。

嗯,您可以调用SetItems(myList)将列表放入组合框,覆盖其中已有的内容

编辑:在组合框列表中创建列表的最常用方法如下:

myList = ["dog", "cat", "hamster"]
cbo = wx.ComboBox(self, choices=myList)
但由于ComboBox继承自ItemContainer,因此您也可以像以下完整示例那样执行此操作:

import wx

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Test")
        panel = wx.Panel(self)

        myList = ["dog", "cat", "hamster"]
        cbo = wx.ComboBox(panel)
        cbo.SetItems(myList)

        self.Show()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    app.MainLoop()

您可以调用SetItems(myList)将列表放入组合框中,覆盖其中已有的内容

编辑:在组合框列表中创建列表的最常用方法如下:

myList = ["dog", "cat", "hamster"]
cbo = wx.ComboBox(self, choices=myList)
但由于ComboBox继承自ItemContainer,因此您也可以像以下完整示例那样执行此操作:

import wx

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Test")
        panel = wx.Panel(self)

        myList = ["dog", "cat", "hamster"]
        cbo = wx.ComboBox(panel)
        cbo.SetItems(myList)

        self.Show()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    app.MainLoop()

\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu


我相信您是在要求一种“在运行时”添加新项的方法?在表单创建之后?如果是,请参见下面的代码;-)


本质上,您不应该看到ComboBox的Clear()和Append()方法,以及这个函数是从某个地方的事件调用的事实。希望这就是您想要的。

我相信您要求的是“在运行时”添加新项的方法?在表单创建之后?如果是,请参见下面的代码;-)


本质上,您不应该看到ComboBox的Clear()和Append()方法,以及这个函数是从某个地方的事件调用的事实。希望这就是您想要的。

@Mike Driscoll可能有意思的是,在Steven链接的wxpython文档中,用于将列表设置到已创建的组合框SetItems中的combobox方法未在类方法中列出。这一方法在wxPython的行动手册中没有被引用,也没有一次。。。所以我理解OP(给了a+1),因为即使是这本书也让你相信使用集合的方式实际上对组合框不起作用。事实上,我在书上做了一个注释,以便每次查阅时都能记住。@joaquin Set可能是为罗宾的书编写的旧版本工作的。如果您在Steven的链接上访问继承层次结构,则会显示SetItems方法。只需单击页面顶部的ItemContainer链接。但是是的,这是令人困惑的。@Mike Driscoll值得注意的是,在Steven链接的wxpython文档中,用于将列表设置到已创建的组合框SetItems中的combobox方法未在类方法中列出。这一方法在wxPython的行动手册中没有被引用,也没有一次。。。所以我理解OP(给了a+1),因为即使是这本书也让你相信使用集合的方式实际上对组合框不起作用。事实上,我在书上做了一个注释,以便每次查阅时都能记住。@joaquin Set可能是为罗宾的书编写的旧版本工作的。如果您在Steven的链接上访问继承层次结构,则会显示SetItems方法。只需单击页面顶部的ItemContainer链接。但是是的,这是令人困惑的。