wxPythonで作るGUI内にハイパーリンクを挿入したいです。
Python
1#!/usr/bin/python 2 3 4import wx 5from wx.lib.stattext import GenStaticText 6import webbrowser 7 8 9class Link(GenStaticText): 10 11 def __init__(self, *args, **kw): 12 super(Link, self).__init__(*args, **kw) 13 14 self.font1 = wx.Font(9, wx.SWISS, wx.NORMAL, wx.BOLD, True, 'Verdana') 15 self.font2 = wx.Font(9, wx.SWISS, wx.NORMAL, wx.BOLD, False, 'Verdana') 16 17 self.SetFont(self.font2) 18 self.SetForegroundColour('#0000ff') 19 20 self.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouseEvent) 21 self.Bind(wx.EVT_MOTION, self.OnMouseEvent) 22 23 def SetUrl(self, url): 24 25 self.url = url 26 27 28 def OnMouseEvent(self, e): 29 30 if e.Moving(): 31 32 self.SetCursor(wx.StockCursor(wx.CURSOR_HAND)) 33 self.SetFont(self.font1) 34 35 elif e.LeftUp(): 36 37 webbrowser.open_new(self.url) 38 39 else: 40 self.SetCursor(wx.NullCursor) 41 self.SetFont(self.font2) 42 43 e.Skip() 44 45 46class Example(wx.Frame): 47 48 def __init__(self, *args, **kw): 49 super(Example, self).__init__(*args, **kw) 50 51 self.InitUI() 52 53 def InitUI(self): 54 55 panel = wx.Panel(self) 56 lnk = Link(panel, label='ZetCode', pos=(10, 60)) 57 lnk.SetUrl('http://www.zetcode.com') 58 59 motto = GenStaticText(panel, label='Knowledge only matters', pos=(10, 30)) 60 motto.SetFont(wx.Font(9, wx.SWISS, wx.NORMAL, wx.BOLD, False, 'Verdana')) 61 62 self.SetSize((220, 150)) 63 self.SetTitle('A Hyperlink') 64 self.Centre() 65 self.Show(True) 66 67 68def main(): 69 70 ex = wx.App() 71 Example(None) 72 ex.MainLoop() 73 74 75if __name__ == '__main__': 76 main()
上がZetCodeにあったサンプルコードなのですが、これだと挿入位置を設定できません。
できれば、~~~~: hyperlink
のhyperlink
部分のみリンクを設定したいのですが…ご存知の方はいらっしゃいますか?
どうすればよいのか教えていただけると嬉しいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。