2
我正在使用wxPython來創建一個GUI應用程序。現在我正在使用wx.CheckListBox來顯示帶有複選框的選項,但是我希望使用HTML格式化CheckListBox中的文本。什麼是最好的方式去做這件事?wxPython與HTML的CheckListBox
我正在使用wxPython來創建一個GUI應用程序。現在我正在使用wx.CheckListBox來顯示帶有複選框的選項,但是我希望使用HTML格式化CheckListBox中的文本。什麼是最好的方式去做這件事?wxPython與HTML的CheckListBox
將wxCheckListBox
替換爲wxHtmlWindow
,並使用wxpTag
作爲複選框。
下面是一些讓你開始的代碼。
import wx
import wx.lib.wxpTag
class HtmlCheckListBox(wx.html.HtmlWindow):
def __init__(self, parent, choices=None):
wx.html.HtmlWindow.__init__(self, parent)
check_box = """
<wxp module="wx" class="CheckBox">
<param name="id" value="%d">
</wxp>
"""
self._ids = dict()
if choices:
items = list()
for c, choice in enumerate(choices):
i = wx.NewId()
self._ids[i] = c
items.append((check_box % i) + choice)
self.SetPage("<hr>".join(items))
self.Bind(wx.EVT_CHECKBOX, self.OnCheck)
def OnCheck(self, event):
print "item:", self._ids[event.Id], "checked:", event.Checked()
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.options = HtmlCheckListBox(
self,
[
"<i>one</i>",
"<b>two</b>",
"<u>three</u>"
]
)
app = wx.PySimpleApp()
app.TopWindow = TestFrame()
app.TopWindow.Show()
app.MainLoop()
太棒了!謝謝。 – 2010-10-27 22:59:06