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 (2)
Oct 31 Python
一则python3的简单爬虫代码
May 26 Python
Python中的ceil()方法使用教程
May 14 Python
深入理解Python变量与常量
Jun 02 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
对python中Json与object转化的方法详解
Dec 31 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
Python绘图实现显示中文
Dec 04 Python
pytorch:model.train和model.eval用法及区别详解
Feb 20 Python
python如何保存文本文件
Jun 07 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
Python 一键获取电脑浏览器的账号密码
May 11 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类的扩展和继承用法实例
2015/06/20 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
js CSS操作方法集合
2008/10/31 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
python绘制多个子图的实例
2019/07/07 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
大学生收银员求职信分享
2014/01/02 职场文书
怀念母亲教学反思
2014/04/28 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
事业单位考察材料范文
2014/12/25 职场文书
2015年推普周活动总结
2015/03/27 职场文书
怎样写好工作计划
2019/04/10 职场文书
详解Vue的options
2021/05/15 Vue.js
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL