wxpython - 如何在图像上绘制矩形框;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 中的代码将文本绘制到现有位图或图像上
我们可以快速敲:
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()
推荐阅读
- javascript - 使用数据表的 HTML 图表
- docker - dokku 上的 .net core 2.0 网络应用程序在数字海洋上的每个 post 方法上返回 400
- apache-kafka - Kafka server.log 中的持续警告
- jquery - 如何通过 PartialView 的 AJAX 调用显示视图?
- java - 解决休眠错误:实体映射中的重复列?
- excel - 获取已添加表的名称
- vba - 如果将值放入带有 (For i) 的 CSV 文件中
- javascript - 将Eventlistener添加到javascript中的所有新对象
- apache-kafka - Kafka Consumer Group Rebalance 和 Group Coordinator 死亡
- javascript - OpenLayers 将几何图形渲染到 Canvas