Linux圆角窗口,wxpython绘制圆角窗体

本文实例为大家分享了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()

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值