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 相关文章推荐
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
PyTorch CNN实战之MNIST手写数字识别示例
May 29 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
Python文件如何引入?详解引入Python文件步骤
Dec 10 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
PHP统计代码行数的小代码
Sep 19 Python
python with (as)语句实例详解
Feb 04 Python
什么是Python变量作用域
Jun 03 Python
Python2.x与3​​.x版本有哪些区别
Jul 09 Python
Python 操作SQLite数据库的示例
Oct 16 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(5) 类和对象
2010/02/16 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
python实现Decorator模式实例代码
2018/02/09 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
生物专业个人自荐信范文
2013/11/29 职场文书
廉政教育心得体会
2014/01/01 职场文书
毕业设计计划书
2014/01/09 职场文书
后进生转化工作制度
2014/01/17 职场文书
应急处置方案
2014/06/16 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
Python+DeOldify实现老照片上色功能
2022/06/21 Python
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers