リスト内の項目の前にビットマップを表示するコンボボックスであるあなたがあなたの好みに合わせて詳細を見つけることが別のオプション、BitmapComboBox
は、あります。
import wx
from wx.adv import BitmapComboBox # Phoenix
#import wx.combo # wxpython Classic
class Myframe(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
pan = wx.Panel(self)
valid_list = ["1111","22222","33333","44444"]
invalid_list = ["5555","6666","77777","88888"]
image = wx.Image("vvalid.png")
valid_bmp = wx.BitmapFromImage(image)
image = wx.Image("vinvalid.png")
invalid_bmp = wx.BitmapFromImage(image)
self.combo = BitmapComboBox(pan) # Phoenix
#self.combo = wx.combo.BitmapComboBox(pan) #wxpython Classic
for i in valid_list:
self.combo.Append(i, bitmap=valid_bmp)
for i in invalid_list:
self.combo.Append(i, bitmap=invalid_bmp)
self.combo.SetSelection(0)
self.combo.Bind(wx.EVT_COMBOBOX, self.OnCombo)
def OnCombo(self, event):
print (self.combo.GetStringSelection())
if __name__ == "__main__":
App = wx.App()
Myframe().Show()
App.MainLoop()
フェニックスを使用してが、私はあなたが現在あなたが古い形式で逃げるせず、ただwx.Bitmap
でwx.BitmapFromImage
を置き換える必要があり、フェニックスとクラシックWXの両方のためのコードが含まれています。
私は、wx.Choice内の個々のアイテムの属性にアクセスすることはできないと考えています。 – prgDevelop
あなたはウィジェットそのものの中にいると思います。選択肢を作った後はいつでも色をつけることができますが、これはおそらく後のことではありません。これは疑問を抱きますが、なぜ彼らが間違っていると誤った選択肢を含めるのですか? –