PySide实现各种形状的按钮
看PySide的示例代码的时候,有个时钟的案例,最后它将那个时钟设置成一个圆形,这顿时让我很感兴趣,细看代码,就是用了asMask的方法,QWidget这个类里有这个方法,共有两种使用方法,如下:
于是找了张图片作为mask试试,实现下各种形状的按钮,如下图,有mask的时候是这样的
无mask的时候是这样的
其实这里主要用到了重写resizeEvent,以及最后用图片作为个mask
self.setMask(self.mask_pixmap.mask())
主要代码如下:
from PySide2 import QtGui, QtWidgets, QtCoreclass MaskButton(QtWidgets.QPushButton):clicked = QtCore.Signal(str)def __init__(self, ):super(MaskButton, self).__init__()self.setFixedSize(64, 64)self.mask_pixmap = QtGui.QPixmap('C:/Program Files/Autodesk/Maya2017/icons/displacementMap_64.png')self.setIcon(QtGui.QIcon('C:/Program Files/Autodesk/Maya2017/icons/displacementMap_64.png'))self.setIconSize(QtCore.QSize(64, 64))self.setObjectName('mask label')# def paintEvent(self, event):# super(MaskButton, self).paintEvent(event)# print 'paint'# painter = QtGui.QPainter(self)# painter.drawImage(2, 1, QtGui.QImage('C:/Program Files/Basefount/Animcraft/autodesk/maya/scripts/BG/old/button_J_2.png'))def resizeEvent(self, event):self.setMask(self.mask_pixmap.mask())super(MaskButton, self).resizeEvent(event)def mousePressEvent(self, event):self.clicked.emit(self.objectName())class Window(QtWidgets.QDialog):def __init__(self, parent):QtWidgets.QDialog.__init__(self, parent)layout=QtWidgets.QGridLayout(self)btn=MaskButton()btn.clicked.connect(self.btn_cmd)layout.addWidget(btn, 0, 1)def btn_cmd(self, name):print('"%s" clicked' % name)def get_maya_window():from shiboken2 import wrapInstanceptr = omui.MQtUtil.mainWindow()return wrapInstance(long(ptr), QtWidgets.QWidget)if __name__ == '__main__':mayaWin = get_maya_window()window=Window(mayaWin)window.setGeometry(500, 300, 200, 200)window.show()
比如我们把mask改成region方式:
def resizeEvent(self, event):region = QtGui.QRegion(QtCore.QRect(20, 20, 40, 30), QtGui.QRegion.Ellipse)self.setMask(region)# self.setMask(self.mask_pixmap.mask())super(MaskButton, self).resizeEvent(event)
达到的效果如下:
就是个椭圆形状的了。
也可以直奔TDMonk,看这个Monk念更多的经
PySide实现各种形状的按钮相关推荐
- QT不规则形状的按钮的实现
Qt实现按钮的不规则样式设置,不是视觉欺骗,是真正的不规则按钮,点击按钮外面不会触发按钮的点击信号 使用如下的代码可以实现特殊形状的按钮,但是按钮还是矩形的,如果按在不规则图形的外面,但是是按钮的矩形 ...
- 有关C#中重写按钮的onpaint函数,实现按钮形状的用户自定义
在使用C#进行界面开发的过程中,做界面开发经常会用到按钮,而C#界面中的按钮形状只有矩形的,而如果我们需要其他形状的按钮的话,就需要想点儿其他办法了,一般开发自己的控件有三种方法: 首先是复合控件,从 ...
- Android 实现各种形状和颜色的按钮
Android 实现各种形状的按钮 上一篇 设置透明按钮和自定义背景 这里就不过多讲解 具体是这么设置的,这篇文章主要分享 各种形状和颜色的按钮. 形状1: <shape xmlns:andro ...
- 为什么博图中放置按下按钮无反应_如何更好的设计按钮
按钮是交互设计的常见元素.虽然它们看起来像是一个非常简单的UI元素,但它们仍然是最重要的创建元素之一. 在今天的文章中,将介绍大家需要了解的基本项目,以便创建有效的控件来改善用户体验. 使按钮看起来像 ...
- WPF界面设计技巧(3)—实现不规则动画按钮
WPF界面设计技巧(3)-实现不规则动画按钮 原文:WPF界面设计技巧(3)-实现不规则动画按钮 发布了定义WPF按钮的教程后,有朋友问能否实现不规则形状的按钮,今天我们就来讲一下不规则按钮的制作. ...
- 优秀的设计UI界面按钮素材,让点击率飙升
快节奏的网络数码时代人们越来越离不开智能设备,面对屏幕上无数的按钮,点还是不点是个问题.不知道大家有没有发现,按钮越多,我们点击得越慢.这是因为只要有按钮,我们的下意识就会"检查" ...
- vant 表单按钮置灰_Vant Button 按钮
引入import Vue from 'vue'; import { Button } from 'vant'; Vue.use(Button); 代码演示 按钮类型 支持default.primary ...
- MFC使用CButtonST类实现按钮图片功能
文章引用于:https://blog.csdn.net/wqvbjhc/article/details/12580669 应用的相关连接:https://blog.csdn.net/qq_337234 ...
- 点击展开按钮设计_使您的按钮设计可点击
点击展开按钮设计 A button is an important UI element that will heavily affect your interaction design. Butto ...
最新文章
- 虚拟机出现蓝屏解决方法
- Too many open files错误与解决方法
- 【Mybatis 之应用篇】 5_Mybatis总结(附20道练习题以及答案)
- 【题解】Luogu SP1435 PT07X - Vertex Cover
- python精要(80)-wxpython(2)-helloworld
- php可变变量讲解,PHP可变变量实例详解
- java 拦截器ajax_(转)拦截器深入实践 - JAVA XML JAVASCRIPT AJAX CSS - BlogJava
- 基础01类与对象、封装、构造方法
- Linux电源管理(2)_Generic PM之基本概念和软件架构
- mysq命令行导出sql_mysql 命令行导入导出.sql文件
- FZU《C语言程序综合设计》
- 将m个相同的球全部放到n个相同的盒子里面有几种放法,盒子不能为空
- STL源码剖析学习之increment、decrement、dereference实现源码
- Fortran中输出Tecplot格式
- 2023电工杯数学建模思路 - 复盘:校园消费行为分析
- 编程 - 变量的命名方法
- Space/Aerial-Assisted Computing Offloading for IoT Applications: A Learning-Based论文复现
- linux系统:can't create transaction lock on /var/lib/rpm/.rpm.lock 错误
- 大幅降低PUE绝非不可能 浪潮MDC如何打造梦幻王国?
- EOS系列 - EOS-VM
热门文章
- Glup命令行相关报错
- ajaxsetup获取ajax的url_$.ajaxSetup在ajax请求中的使用
- 2种可预防男性猝死的食物 你吃过吗?
- 微型计算机的状况,微型计算机行业报告_2013-2017年中国微型计算机行业分析及发展预测报告_中商情报网...
- jqery图片展示效果
- iOS逆向之脱壳工具creakerXI+,最简单、最适合新手的脱壳工具
- 【调剂】西安微电子技术研究所2023年硕士研究生入学考试复试分数线及复试安排...
- 蒙迪欧致胜豪华版钥匙没电了怎么启动汽车
- 4万字,阿里云《大型体育赛事云上实战精选》电子书发布!
- springalibaba的各种组件应用