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之for循环语句
Oct 02 Python
Python闭包的两个注意事项(推荐)
Mar 20 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
python中使用print输出中文的方法
Jul 16 Python
Python sorted函数详解(高级篇)
Sep 18 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
解决python文件双击运行秒退的问题
Jun 24 Python
Python更改pip镜像源的方法示例
Dec 01 Python
python中round函数保留两位小数的方法
Dec 04 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
详解非极大值抑制算法之Python实现
Jun 28 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正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
python提示No module named images的解决方法
2014/09/29 Python
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
python控制台中实现进度条功能
2015/11/10 Python
python hook监听事件详解
2018/10/25 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
物流管理专业应届生求职信
2013/11/21 职场文书
倡议书范文
2014/04/16 职场文书
优质服务口号
2014/06/11 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS