天天看點

wxpython 按鈕 透明_如何使wxPython,DC背景透明?

如何使預設的白色直流背景變為不可見(透明)?在

運作以下示例,它在按鈕上顯示白色背景。我想去掉DC的白色背景。(隻顯示紅色X)import wx

class drawover(wx.Window):

def __init__(self, parent):

wx.Window.__init__(self, parent)

self.Bind(wx.EVT_PAINT, self.OnPaint)

self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnErase)

self.Bind(wx.EVT_SET_FOCUS, self.OnFocus)

def OnFocus(self, evt):

self.GetParent().SetFocus()

def OnErase(self, evt):

pass

def OnPaint(self, evt):

dc = wx.PaintDC(self)

dc.BeginDrawing()

dc.SetPen(wx.Pen("RED", 1))

dc.DrawLineList([(0,0,100,100), (100,0,0,100)])

dc.EndDrawing()

class frame(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None, size=(600,600))

s = wx.BoxSizer(wx.VERTICAL)

self.tc1 = wx.TextCtrl(self, style=wx.TE_MULTILINE)

s.Add(self.tc1, 1, wx.EXPAND)

self.tc2 = wx.Button(self)

s.Add(self.tc2, 1, wx.EXPAND)

self.d = drawover(self.tc2)

self.tc2.Bind(wx.EVT_SIZE, self.OnSize2)

self.SetSizer(s)

self.Layout()

def OnSize2(self, evt):

self.d.SetSize((101,101))

if __name__ == '__main__':

a = wx.App(0)

b = frame()

b.Show(1)

a.MainLoop()