wxpython绘制圆角窗体


Posted in Python onNovember 18, 2019

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用scrapy解析js示例
Jan 23 Python
在Python的web框架中中编写日志列表的教程
Apr 30 Python
对Python的Django框架中的项目进行单元测试的方法
Apr 11 Python
python语言使用技巧分享
May 31 Python
Python实现自定义函数的5种常见形式分析
Jun 16 Python
Django渲染Markdown文章目录的方法示例
Jan 02 Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Django中使用MySQL5.5的教程
Dec 18 Python
Pandas实现一列数据分隔为两列
May 18 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
python的dict判断key是否存在的方法
Dec 09 Python
wxpython绘制音频效果
Nov 18 #Python
python导入不同目录下的自定义模块过程解析
Nov 18 #Python
解决django model修改添加字段报错的问题
Nov 18 #Python
python sorted方法和列表使用解析
Nov 18 #Python
在Django中实现添加user到group并查看
Nov 18 #Python
Django继承自带user表并重写的例子
Nov 18 #Python
Django自定义用户表+自定义admin后台中的字段实例
Nov 18 #Python
You might like
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
python3.8下载及安装步骤详解
2020/01/15 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
六五普法规划实施方案
2014/03/21 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
2014年大学生工作总结
2014/11/20 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
基层党支部承诺书
2015/04/30 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
MYSQL常用函数介绍
2022/05/05 MySQL