嗨,我知道可以使用列表来实现这个功能,但是能否使用下拉框来实现呢?是否有类似于set函数的东西?
我尝试使用set函数与下拉框一起使用,但是收到了以下错误信息: AttributeError: 'ComboBox'对象没有属性'Set'
谢谢。
好的,您可以调用SetItems(myList)将一个列表放入ComboBox中,覆盖原有内容。
编辑:创建ComboBox列表最常见的方法如下:
myList = ["dog", "cat", "hamster"]
cbo = wx.ComboBox(self, choices=myList)
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()
http://www.wxpython.org/docs/api/wx.ComboBox-class.html
__init__(parent, id, value, pos, size, choices, style, validator, name) 是一个与编程有关的函数。combobox = wx.ComboBox(self, choices=myList)
def UpdateCitiesCombo(self):
self.cmbCities.Clear()
pc = PostalCode()
if self.txtPostalCode.Value:
cities = pc.GetFromCode(int(self.txtPostalCode.Value))
for city in cities:
self.cmbCities.Append(city[2])
items = self.cmbCities.GetItems()
index = -1
try:
if self.customer.city != "":
index = items.index(self.customer.city)
else:
index = 0
self.cmbCities.SetSelection(index)
except ValueError:
self.cmbCities.SetValue(self.customer.city)