首页 > 开发 > Python > 正文

wxpython绘制圆角窗体

2024-09-09 19:02:35
字体:
来源:转载
供稿:网友

本文实例为大家分享了wxpython绘制圆角窗体的具体代码,供大家参考,具体内容如下

# -*- coding:gbk -*- import wx class RCDialog(wx.Dialog): def __init__(self,parent=None,size=wx.DefaultSize):  wx.Dialog.__init__(self, parent, -1, size=size,   style=wx.FRAME_SHAPED |     wx.SIMPLE_BORDER |     wx.FRAME_NO_TASKBAR |     wx.STAY_ON_TOP)   self.Centre( wx.BOTH)   # linux平台  if wx.Platform == "__WXGTK__":   self.Bind(wx.EVT_WINDOW_CREATE, self.SetBalloonShape)  else:   self.SetBalloonShape()     self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)  self.Bind(wx.EVT_MOTION, self.OnMouseMove)  self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)  def OnLeftDown(self, event):  pos = event.GetPosition()  x, y = self.ClientToScreen(event.GetPosition())  ox, oy = self.GetPosition()  dx = x - ox  dy = y - oy  self.delta = ((dx, dy))  def OnMouseMove(self, event):  if event.Dragging() and event.LeftIsDown():   x, y = self.ClientToScreen(event.GetPosition())   fp = (x - self.delta[0], y - self.delta[1])   self.Move(fp)  def OnRightUp(self, evt):  self.Close()  def SetBalloonShape(self, event=None):  width, height = self.GetSize()  bmp = wx.EmptyBitmap(width,height)  dc = wx.BufferedDC(None, bmp)  dc.BeginDrawing()  dc.SetBackground(wx.Brush(wx.Colour(0,0,0), wx.SOLID))  dc.Clear()   dc.DrawRoundedRectangle(0, 0, width-1, height-1, 4)  dc.EndDrawing()   r = wx.RegionFromBitmapColour(bmp, wx.Colour(0,0,0))  self.hasShape = self.SetShape(r) if __name__ == "__main__": app = wx.PySimpleApp() dlg = RCDialog(size=(376,282)) dlg.Show() app.MainLoop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网之家。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表