在wxpython中,如何使框架完全透明,而线是可见的?

2024-05-05 21:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

import wx

class DrawPanel(wx.Frame):
  def __init__(self): 
    wx.Frame.__init__(self,None,title="Draw",size=(150,150)) 
    self.SetTransparent(0) 
    self.Bind(wx.EVT_PAINT, self.OnPaint)
  def OnPaint(self, event=None):
    dc = wx.PaintDC(self)
    dc.SetPen(wx.Pen(wx.BLACK, 5)) 
    # Draw a line 
    dc.DrawLine(0, 0, 150, 150)  

app = wx.App()
frame = DrawPanel()
frame.Show(True)
app.MainLoop()

现在帧和线都不可见了。在

请告诉我如何使框架完全透明,而线条是可见的?在


Tags: importselfnoneapptitleinitdefdc
1条回答
网友
1楼 · 发布于 2024-05-05 21:20:03

当你使框架透明时,它也使它的所有子对象都透明。因此,这是不可能的。不过,您可以通过GraphicsContext制作半透明图形。你可以看看GLCanvas(OpenGL的包装器),或者你可以用Cairo来拼凑一些东西。请参见wxPython演示包(可从www.wxpython.org)获取示例。在

相关问题 更多 >