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中为什么要用self探讨
Apr 14 Python
Python实现读取并保存文件的类
May 11 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
Python面向对象之继承代码详解
Jan 29 Python
Python实现将Excel转换成xml的方法示例
Aug 25 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
Python对excel文档的操作方法详解
Dec 10 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
python 实现按对象传值
Dec 26 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
python collections模块的使用
Oct 16 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结合表单实现一些简单功能的例子
2011/06/04 PHP
php导入导出excel实例
2013/10/25 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
用PHP的反射实现委托模式的讲解
2019/03/22 PHP
xml和web特殊字符
2009/04/28 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
python的继承知识点总结
2018/12/10 Python
python三方库之requests的快速上手
2019/03/04 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
详解Python传入参数的几种方法
2019/05/16 Python
elasticsearch python 查询的两种方法
2019/08/04 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
机械制造专业个人的自我评价
2013/12/28 职场文书
生产部主管岗位职责
2014/01/06 职场文书
检举信的格式及范文
2014/04/04 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
小学运动会宣传稿
2015/07/23 职场文书
Mysql Show Profile
2021/04/05 MySQL