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

时间:2013-05-07 01:36:11

标签: python wxpython

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()

现在帧和线都是不可见的。

请告诉我如何使画面完全透明,同时可以看到画线?

1 个答案:

答案 0 :(得分:0)

当您使框架透明时,它也会使其所有子项都透明。因此,这真的是不可能的。您可以通过GraphicsContext制作半透明图纸。你可以看一下GLCanvas(OpenGL的包装器),或者你也可以和Cairo一起拼凑一些东西。有关示例,请参阅wxPython演示程序包(可从www.wxpython.org获得)。