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 返回汉字的汉语拼音
Feb 27 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
Flask框架Jinjia模板常用语法总结
Jul 19 Python
python实现连续图文识别
Dec 18 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
详解Python多线程下的list
Jul 03 Python
Python Map 函数的使用
Aug 28 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 Python
python利用paramiko实现交换机巡检的示例
Sep 22 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
python numpy中setdiff1d的用法说明
Apr 22 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面试题附答案
2009/01/07 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
Python中的变量和作用域详解
2016/07/13 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
html5图片上传预览示例分享
2014/04/14 HTML / CSS
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
图书室管理制度
2014/01/19 职场文书
大学自我评价
2014/02/12 职场文书
诉前财产保全担保书
2014/05/20 职场文书
离婚协议书范本样本
2014/08/19 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书