令人惊讶的是没有人给出答案..
是的,正如 FogleBird 所说,它已经完成了SetShape
,但问题是如何在不使用图像文件的情况下获得圆形矩形的形状。
我找到了一种方法,即创建一个空位图并使用内存 dc 在其上绘制一个圆角矩形
def GetRoundBitmap( w, h, radius ):
maskColor = wx.Color(0,0,0)
shownColor = wx.Color(5,5,5)
b = wx.EmptyBitmap(w,h)
dc = wx.MemoryDC()
dc.SelectObject(b)
dc.SetBrush(wx.Brush(maskColor))
dc.DrawRectangle(0,0,w,h)
dc.SetBrush(wx.Brush(shownColor))
dc.DrawRoundedRectangle(0,0,w,h,radius)
dc.SelectObject(wx.NullBitmap)
b.SetMaskColour(maskColor)
return b
def GetRoundShape( w, h, r ):
return wx.RegionFromBitmap( GetRoundBitmap(w,h,r) )
我发现的一个问题是形状是安静的别名。不完全是一个漂亮/花哨的窗口,但总比没有好。