如何在wxpython 4.0中的单个控件中添加文本和html链接?

时间:2017-08-12 23:04:39

标签: python wxpython

我正在尝试在同一行添加文字和链接。在互联网上,我只找到了statictext(允许文本)和wx.adv.HyperlinkCtrl,它只添加一个链接。理想情况下,如果我可以用一个句子将它们连接起来将是理想的。

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

你能不能用sizer将它们捆绑在一起? e.g。

#!/usr/bin/python
import wx
import wx.lib.agw.hyperlink as hl

class Example(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, -1, title)
        self.InitUI()

    def InitUI(self):
        panel = wx.Panel(self)
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        textS = wx.StaticText(panel, label='Plain')
        textS.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.BOLD, False, 'Arial'))
        lnk = hl.HyperLinkCtrl(panel, -1, "wxPython Main Page",
                                  URL="http://www.wxpython.org/")
        textE = wx.StaticText(panel, label='Text')
        textE.SetFont(wx.Font(12, wx.SWISS, wx.ITALIC, wx.NORMAL, False, 'Courier'))
        self.SetSize((500, 150))
        sizer.Add(textS, 0, wx.ALL, 5 )
        sizer.Add(lnk, 0, wx.ALL, 5 )
        sizer.Add(textE, 0, wx.ALL, 5 )
        lnk.EnableRollover(True)
        lnk.SetToolTip(wx.ToolTip("Hello World!"))
        lnk.UpdateLink()
        self.SetSizer(sizer)
        self.Centre()
        self.Show(True)

if __name__ == '__main__':
    ex = wx.App()
    Example(None, 'A Hyperlink')
    ex.MainLoop()