我正在使用wxPython创建一个图形用户界面应用程序。现在,我使用wx.CheckListBox来显示带有复选框的选项,但我希望CheckListBox中的文本使用HTML语言进行格式化。做这件事最好的方法是什么?
发布于 2010-10-28 06:35:13
将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()https://stackoverflow.com/questions/4037076
复制相似问题