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 11 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
python调用Delphi写的Dll代码示例
Dec 05 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
python binascii 进制转换实例
Jun 12 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
opencv3/C++实现视频读取、视频写入
Dec 11 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
python从Oracle读取数据生成图表
Oct 14 Python
Python正则表达式中flags参数的实例详解
Apr 01 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 防止单引号,双引号在接受页面转义
2008/07/10 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
一个JS翻页效果
2007/07/23 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
python中如何进行连乘计算
2020/05/28 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
python ETL工具 pyetl
2020/06/07 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
造型师求职自荐信
2013/09/27 职场文书
失业者真诚求职信范文
2013/12/25 职场文书
内勤主管岗位职责
2014/04/03 职场文书
先进单位事迹材料
2014/12/25 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
python 实现的截屏工具
2021/05/08 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers