首页 > 解决方案 > 如何在 WXPYTHON 中向我的面板显示图像

问题描述

我想在 wxPython 的面板中显示图像,但我不知道该怎么做。这是我的代码:

def onClick(self,Event):
        wildcard='PNG files (*.png)|*.png|BMP files (*.bmp)|*.bmp|JPEG files (*.jpg)|*.jpg'
        openFileDialog = wx.FileDialog(self, "Open", "", "", wildcard,wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
        openFileDialog.ShowModal()
        url=openFileDialog.GetPath()
        img=mpimg.imread(url)

基本上它工作得很好。我浏览我的图像,我将它的 url 放入一个变量(url),然后在另一个变量(img)中,我从我的电脑中保存我的图像。我的问题如下:我想在“浏览”按钮上方添加“img”,但我不知道该怎么做。 在此处输入图像描述

标签: pythonwxpythonwildcard

解决方案


使用 wx.StaticBitmap。

import wx

class Frame(wx.Frame):

    def __init__(self, parent):
        super().__init__(parent)

        fgs = wx.FlexGridSizer(2, 1, 10, 10)
        fgs.AddGrowableRow(0)

        self.staticbitmap = wx.StaticBitmap(self)
        fgs.Add(self.staticbitmap, 1, wx.EXPAND)

        browse = wx.Button(self, label='Browse')
        browse.Bind(wx.EVT_BUTTON, self.OnBrowse)
        fgs.Add(browse, flag=wx.LEFT)

        self.SetSizer(fgs)

    def OnBrowse(self, event):
        wildcard = 'PNG files (*.png)|*.png|BMP files (*.bmp)|*.bmp|JPEG files (*.jpg)|*.jpg'
        openFileDialog = wx.FileDialog(self, "Open", "", "", wildcard,
                                       wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
        openFileDialog.ShowModal()
        url = openFileDialog.GetPath()
        self.staticbitmap.SetBitmap(wx.Bitmap(url))
        event.Skip()

app = wx.App()
frame = Frame(None)
frame.Show()
app.MainLoop()

推荐阅读