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中的多重继承实例讲解
Sep 28 Python
讲解Python中fileno()方法的使用
May 24 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
django页面跳转问题及注意事项
Jul 18 Python
Django框架模板用法入门教程
Nov 04 Python
python django中8000端口被占用的解决
Dec 17 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
Python基于pip实现离线打包过程详解
May 15 Python
用Python生成会跳舞的美女
Jan 18 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
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
简单实现PHP留言板功能
2016/12/21 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
使用PHP开发留言板功能
2019/11/19 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
Python中单、双下划线的区别总结
2017/12/01 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
python 如何引入协程和原理分析
2020/11/30 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
家长会邀请书
2014/01/25 职场文书
公司年会策划方案
2014/05/17 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书