首页 > 解决方案 > 如何在图像上绘制矩形框;wxPython?

问题描述

我正在尝试在图像上绘制一个矩形。图像已设置在面板上。

我尝试过使用 wx.PaintDC,它可以在面板上工作并摆脱图像。我想在图像上有矩形。

import wx

class window (wx.Frame):
    def __init__ (self, parent, id):
        wx.Frame.__init__ (self, parent, id, "Solitair", size = (1200, 800))
        self.add_menubar()
        self.panel = wx.Panel(self)
        img = 'background.jpg'
        bmp = wx.Image(img, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
        self.bitmap = wx.StaticBitmap(self.panel, -1, bmp, (0,0))

        self.bitmap.Bind(wx.EVT_PAINT, self.drowRec)

    def drowRec(self, event):
        dc = wx.PaintDC(self.bitmap)
        dc.SetPen(wx.Pen('green', 5, wx.SOLID))
        dc.SetBrush(wx.Brush('green', wx.TRANSPARENT))
        dc.DrawRectangle(100, 50, 150, 200)

矩形应该在图像面板上,而不是在实际的空面板上。

请帮忙。提前致谢

标签: wxpython

解决方案


调整您的代码和wxPython 中的代码将文本绘制到现有位图或图像上

我们可以快速敲:

import wx

class window (wx.Frame):
    def __init__ (self, parent, id):
        wx.Frame.__init__ (self, parent, id, "Solitair", size = (1200, 800))
        self.panel = wx.Panel(self)
        img = 'wxPython.jpg'
        self.bmp = wx.Image(img, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
        self.bitmap = wx.StaticBitmap(self.panel, -1, self.bmp)
        self.drowRec(None)

    def drowRec(self, event):
        dc = wx.MemoryDC(self.bmp)
        dc.SetPen(wx.Pen('green', 5, wx.SOLID))
        dc.SetBrush(wx.Brush('green', wx.TRANSPARENT))
        dc.DrawRectangle(20, 20, 60, 60)
        del dc
        self.bitmap.SetBitmap(self.bmp)

app = wx.App(False)
frame = window(None, -1)
frame.Show()
app.MainLoop()

在此处输入图像描述


推荐阅读