0
我有使用wx.StaticBitmap的應用程序中的圖像,但我需要將圖像添加到圖像,當你點擊圖像時,它應該使用系統的默認瀏覽器打開該網址。如何放置這樣的圖像?wxPython圖像與URL
我有使用wx.StaticBitmap的應用程序中的圖像,但我需要將圖像添加到圖像,當你點擊圖像時,它應該使用系統的默認瀏覽器打開該網址。如何放置這樣的圖像?wxPython圖像與URL
您需要將wx.StaticBitmap
的實例綁定到wx.EVT_LEFT_DOWN
,並使用Python的webbrowser
模塊打開url。您可以創建一個圖像字典,其中每個圖像映射到一個URL。然後,在加載圖像時,將變量設置爲該圖像的路徑,並將其用作字典中的鍵,以在單擊圖像時加載URL。
這裏有一個非常簡單的例子:
import webbrowser
import wx
########################################################################
class ImgPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
self.my_images = {"/path/to/image.jpg":"www.example.com"}
self.loaded = "/path/to/image.jpg"
img = wx.Image(self.loaded, wx.BITMAP_TYPE_ANY)
self.image_ctrl = wx.StaticBitmap(self, bitmap=wx.BitmapFromImage(img))
self.image_ctrl.Bind(wx.EVT_LEFT_DOWN, self.onClick)
#----------------------------------------------------------------------
def onClick(self, event):
""""""
webbrowser.open(self.my_images[self.loaded])
########################################################################
class MainFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Images")
panel = ImgPanel(self)
self.Show()
if __name__ == "__main__":
app = wx.App(False)
frame = MainFrame()
app.MainLoop()