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中的eval()、exec()及其相关函数
Dec 20 Python
单链表反转python实现代码示例
Feb 08 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
python得到windows自启动列表的方法
Oct 14 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
python实现对列表中的元素进行倒序打印
Nov 23 Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 Python
python网络编程之五子棋游戏
May 14 Python
Python调用.net动态库实现过程解析
Jun 05 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 Python
python制作微博图片爬取工具
Jan 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 visitFile()遍历指定文件夹函数
2010/08/21 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
JS的get和set使用示例
2014/02/20 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
Python urlopen()函数 示例分享
2014/06/12 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
python实现简易学生信息管理系统
2020/04/05 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
利用Python优雅的登录校园网
2020/10/21 Python
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
财务与信息服务专业推荐信
2013/11/28 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
鲁迅故里导游词
2015/02/05 职场文书
初一语文教学反思
2016/03/03 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
Python中Permission denied的解决方案
2021/04/02 Python