动态更改 wx.ComboBox() 中的选项 [英] Dynamically change the choices in a wx.ComboBox()

查看:34
本文介绍了动态更改 wx.ComboBox() 中的选项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我没有找到比用新的组合框替换旧的组合框更好的方法来更改 wx.ComboBox() 中的不同选择.有没有更好的办法?

欧尔扬·彼得森

#!/usr/bin/python#20_combobox.py进口 wx导入 wx.lib.inspection类 MyFrame(wx.Frame):def __init__(self, *args, **kwargs):wx.Frame.__init__(self, *args, **kwargs)self.p1 = wx.Panel(self)lst = ['1','2','3']self.st = wx.ComboBox(self.p1, -1, selection = lst, style=wx.TE_PROCESS_ENTER)self.st.Bind(wx.EVT_COMBOBOX, self.text_return)def text_return(self, event):lst = ['3','4']self.st = wx.ComboBox(self.p1, -1, selection = lst, style=wx.TE_PROCESS_ENTER)类 MyApp(wx.App):def OnInit(self):frame = MyFrame(None, -1, '20_combobox.py')frame.Show()self.SetTopWindow(frame)返回 1如果 __name__ == "__main__":应用程序 = 我的应用程序(0)# wx.lib.inspection.InspectionTool().Show()app.MainLoop()

解决方案

wx.ComboBox 派生自 wx.ItemContainer,它具有 附加附加rel="noreferrer">清除、插入删除项,所有这些方法都可以在 wx.ComboBox 上使用.做你想做的一种方法是定义 text_return() 方法如下:

def text_return(self, event):self.st.Clear()self.st.Append('3')self.st.Append('4')

I didn't find a better way to change the different choices in a wx.ComboBox() than swap the old ComboBox with a new one. Is there a better way?

Oerjan Pettersen

#!/usr/bin/python

#20_combobox.py

import wx
import wx.lib.inspection

class MyFrame(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.p1 = wx.Panel(self)
        lst = ['1','2','3']
        self.st = wx.ComboBox(self.p1, -1, choices = lst, style=wx.TE_PROCESS_ENTER)

        self.st.Bind(wx.EVT_COMBOBOX, self.text_return)


    def text_return(self, event):
        lst = ['3','4']
        self.st = wx.ComboBox(self.p1, -1, choices = lst, style=wx.TE_PROCESS_ENTER)


class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, -1, '20_combobox.py')
        frame.Show()
        self.SetTopWindow(frame)
        return 1

if __name__ == "__main__":
    app = MyApp(0)
#    wx.lib.inspection.InspectionTool().Show()
    app.MainLoop()

解决方案

wx.ComboBox derives from wx.ItemContainer, which has methods for Appending, Clearing, Inserting and Deleting items, all of these methods are available on wx.ComboBox.

One way to do what you want would be to define the text_return() method as follows:

def text_return(self, event):
    self.st.Clear()
    self.st.Append('3')
    self.st.Append('4')

这篇关于动态更改 wx.ComboBox() 中的选项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆