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入门篇之字符串
Oct 17 Python
在Python中操作时间之strptime()方法的使用
Dec 30 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
使用 Python 实现简单的 switch/case 语句的方法
Sep 17 Python
python生成lmdb格式的文件实例
Nov 08 Python
python实现年会抽奖程序
Jan 22 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
Python Web框架之Django框架Model基础详解
Aug 16 Python
使用python写一个自动浏览文章的脚本实例
Dec 05 Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 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脚本数据库功能详解(下)
2006/10/09 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php实现文件下载实例分享
2014/06/02 PHP
php中in_array函数用法分析
2014/11/15 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
Nuxt的路由动画效果案例
2020/11/06 Javascript
python实现随机密码字典生成器示例
2014/04/09 Python
利用python画一颗心的方法示例
2017/01/31 Python
Python定时器实例代码
2017/11/01 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
个人自我评价和职业目标
2014/01/24 职场文书
班级旅游计划书
2014/05/03 职场文书
邓小平理论心得体会
2014/09/09 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
二十年同学聚会感言
2015/07/30 职场文书
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL