wxpython 表格重置_如何使用wxpython实时重置组合框的选项?

这对我很有效,绑定EVT_COMBOBOX_下拉列表来更新列表,而绑定EVT_COMBOBOX来运行用户选择的函数。这样更新,然后显示更新的内容。如果新的选择更少,它就不会留下先前选择的空白。您还可以将组合框设置为只读,以作为选项小部件(用户不可编辑),如下所示。这段代码在Windows、python3.6和更新的wxpython(phoenix)下进行了测试。在import wx

class Mywin(wx.Frame):

def __init__(self, parent, title):

super(Mywin, self).__init__(parent, title = title,size = (300,200))

panel = wx.Panel(self)

box = wx.BoxSizer(wx.VERTICAL)

self.label = wx.StaticText(panel,label = "Your choice:" ,style = wx.ALIGN_CENTRE)

box.Add(self.label, 0 , wx.EXPAND |wx.ALIGN_CENTER_HORIZONTAL |wx.ALL, 20)

cblbl = wx.StaticText(panel,label = "Combo box",style = wx.ALIGN_CENTRE)

box.Add(cblbl,0,wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALL,5)

# initial chioces are 5

#

languages = ['C', 'C++', 'Python', 'Java', 'Perl']

#

self.combo = wx.ComboBox(panel,choices = languages, style = wx.CB_READONLY)

box.Add(self.combo,0,wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALL,5)

self.combo.Bind(wx.EVT_COMBOBOX ,self.OnCombo)

self.combo.Bind(wx.EVT_COMBOBOX_DROPDOWN,self.updatelist)

panel.SetSizer(box)

self.Centre()

self.Show()

def OnCombo(self, event):

self.label.SetLabel("You selected "+self.combo.GetValue()+" from Combobox")

def updatelist(self, event):

# Chioces are now just 2

#

OtrosLanguajes = ['C++', 'Python']

#

self.combo.SetItems(OtrosLanguajes)

app = wx.App()

Mywin(None, 'ComboBox and Choice demo')

app.MainLoop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值