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实现复杂对象转JSON的方法示例
Jun 22 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
Jul 13 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
Python实现的质因式分解算法示例
May 03 Python
解决Matplotlib图表不能在Pycharm中显示的问题
May 24 Python
实例讲解python中的协程
Oct 08 Python
Python提取频域特征知识点浅析
Mar 04 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
python 字典套字典或列表的示例
Dec 16 Python
Python模拟登录requests.Session应用详解
Nov 17 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几个实用自定义函数小结
2016/01/25 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
select标记美化--JS式插件、后期加载
2013/04/01 Javascript
js函数排序的实例代码
2013/07/01 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
Vue自定义指令详解
2017/07/28 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
python爬虫 正则表达式解析
2019/09/28 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
信息专业本科生个人的自我评价
2013/10/28 职场文书
中学生励志演讲稿
2014/04/26 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers