pyqt5-按钮基类-QAbstractButton
QAbstractButton 是抽象类
from PyQt5.QtWidgets import QApplication, QWidget,QAbstractButton
import sys
from PyQt5.QtGui import QPainter,QPen,QColor class Btn(QAbstractButton): #QAbstractButton是抽象类,必须子类化,[自定义按钮]
def paintEvent(self, evt) : #paintEvent必须有-绘制事件
painter=QPainter(self) #创建一个画家
#参数 给画家一张纸,让画家在self上画
pen=QPen(QColor(255,0,0),3) #创建画笔
painter.setPen(pen) #给画家一根笔
painter.drawText(20,20,self.text()) #画文本
#参数3 返回对象的文本
painter.drawEllipse(0, 0, self.width(), self.height()) # 画椭圆 class win(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300)
self.setWindowTitle('窗口') btn=Btn(self)
btn.move(100,20)
btn.setText('自定义按钮') btn.clicked.connect(self.A) def A(self):
print('按钮点击事件') if __name__=='__main__':
app=QApplication(sys.argv) #创建应用
w=win()
w.show()
sys.exit(app.exec_())
文本设置或获取:
btn.setText('自定义按钮') #设置文本
self.btn.text() 返回文本
图标:
setIcon(QIcon("resource/h1.png")) 设置图标
setIconSize(QSize(w, h)) 设置图标大小
from PyQt5.QtCore import QSize
icon() 获取图标
iconSize() 获取图标大小
设置快捷键:
方式1: 有提示文本的
self.btn.setText('&a按钮') #快捷键是 ALT+a
方式2: 没有提示文本的
self.btn.setShortcut("Alt+G") #快捷键是 ALT+G
shortcut() 返回快捷键
自动重复:
比如用户用鼠标按住按钮时,会连续地发出信号
setAutoRepeat(bool) 设置自动重复
Ture 自动重复
setAutoRepeatInterval(毫秒) 设置自动重复检测间隔
setAutoRepeatDelay(毫秒) 设置初次检测延迟
autoRepeat() 获取是否自动重复
autoRepeatInterval() 获取自动重复检测间隔
autoRepeatDelay() 获取初次检测延迟
状态:
setDown(bool) 设置按钮, 是否被按下
True 按下
注意设置这个属性仅仅是改变钮的外观,不会发射任何信号
isDown() 是否按下按钮
isChecked() 是否选中了按钮
isCheckable() 按钮是否可以被选中
setCheckable(bool) 设置按钮, 是否可以被选中
setChecked(bool) 设置按钮, 是否被选中
toggle() 切换选中与非选中状态
isEnabled() 是否可用
setEnabled(bool) 设置是否可用
排他性:
比如:多个按钮中只能选择一个按钮
排他性 发生在同一级别也就是相同的父控件(同一分组中)的按钮中
autoExclusive() 是否自动排他
一般按钮都是False, 只有单选按钮是True
setAutoExclusive(bool) 设置是否自动排他
模拟鼠标点击:
btn.click() 普通点击
animateClick(ms) 动画点击
参数 相当于鼠标按下后,再经过指定时间才释放
设置点击有效区域:
重写 hitButton(QPoint) 有效返回True 无效返回False
视频教程:https://www.bilibili.com/video/av50026641/
可用信号:
pressed() 鼠标按下信号
released() 鼠标释放:控件内松开鼠标 鼠标移出控件范围后
clicked() 控件内按下+控件内释放
会向槽函数传递一个布尔值(按钮是否被选中)
toggled() 切换信号-选中状态发生变化时发出信号 (一般在单选框或者复选框中使用)
只有把按钮设置为可以被选中才会发出这个信号
会向槽函数传递一个布尔值(按钮是否被选中)
天子骄龙
pyqt5-按钮基类-QAbstractButton的更多相关文章
- 八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox
pyqt5中常用的按钮类控件有QPushButton.QRadioButton.QCheckBox.QToolButton等.这些按钮类的基类都是QAbstracButton类.所以这些类有部分方法是 ...
- iOS控制器之基类设计
题记 在进入新公司后.经过这一个月的重构项目,终于把项目做到了个人相对满意的程度(还有一种不满意的叫老板的需求,提过多次意见也没用= =!).在这次重构中按照以前的思路设计出了个人觉得比较适用的一个基 ...
- Android 自定义Activity基类与TitleBar
我们在开发App的时候有时候碰到多个界面有一个共同点的时候,比如,都有相同的TitleBar,并且TitleBar可以设置显示的文字.TitleBar上的点击事件,如果给每一个Activity都写一遍 ...
- Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装
简单介绍 关于运行时权限的说法,早在Google发布android 6.0的时候,大家也听得蛮多的.从用户的角度来讲,用户是受益方,更好的保护用户的意思,而对于开发者来说,无疑增加了工作量. 对于6. ...
- 基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作
在上一篇随笔中,我对Web开发框架的总体界面进行了介绍,其中并提到了我的<Web开发框架>的控制器的设计关系,Web开发框架沿用了我的<Winform开发框架>的很多架构设计思 ...
- QWidget QMainWindow QDialog 三个基类的区别
Qt类是一个提供所需的像全局变量一样的大量不同的标识符的命名空间.通常情况下,你可以忽略这个类.QObject和一些其它类继承了它,所以在这个Qt命名空间中定义的所有标识符通常情况下都可以无限制的使用 ...
- 【iOS】UIViewController基类的实现
继承是面向对象编程语言的三大特性之一,写好基类会给App的开发带来极大的方便.在iOS开发中,一般一个页面就对应一个ViewController,ViewController在开发中用的也很多,写一个 ...
- 谈谈Ext JS的组件——组件基类:Ext.Component
概述 Ext.Component是所有Ext组件的基类,这在Ext.Component的API中第一句话就提到了.然后第二段说明了它包含的基本功能:隐藏/显示.启用/禁用以及尺寸控制等.除了以上这些基 ...
- 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素
[源码下载] 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中 ...
随机推荐
- centos7配置静态ip地址
1.配置文件所在目录为 /etc/sysconfig/network-scripts cd /etc/sysconfig/network-scripts 2.打开配置文件进行修改,建议在修改之前先备份 ...
- jquery-插件iCheck 使用
这是一个兼容多种浏览器的插件 官网:http://icheck.fronteed.com/ 官方给出了很多的例子,我说一个使用的问题. 使用的时候,要放到window..load的外部. 页面html ...
- vue给不同环境配置不同打包命令
第1步:安装cross-env 1 npm i --save-dev cross-env 第2步:修改各环境下的参数 在config/目录下添加test.env.js.pre.env.js. 修改pr ...
- 【转】Android中保持Service的存活
这几天一直在准备考试,总算有个半天时间可以休息下,写写博客. 如何让Service keep alive是一个很常见的问题. 在APP开发过程中,需要Service持续提供服务的应用场景太多了,比如闹 ...
- [LeetCode] 5. 最长回文子串
题目链接:https://leetcode-cn.com/problems/longest-palindromic-substring/ 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串.你 ...
- zabbix 主动模式和被动模式说名
一.zabbix agent主动模式与被动模式的区别 zabbix agent的运行模式有以下两种:1.被动模式:此模式为zabbix默认的工作模式,由zabbix server 向zabbix ag ...
- Resolving Issues of "Library Cache Pin" or "Cursor Pin S wait on X" (Doc ID 1476663.1)
Doc ID 1476663.1) To Bottom In this Document Purpose Troubleshooting Steps Brief Definition: ...
- IdentityServer4【Topic】Consent
Conset这个概念在Identityserver4中是表示要当前用户对第三方应用对资源请求的一个确认,它会被做成一个页面. 术语映射: Consent page--确认页面,我喜欢叫做Consent ...
- vue2.0里的路由钩子
路由钩子 在某些情况下,当路由跳转前或跳转后.进入.离开某一个路由前.后,需要做某些操作,就可以使用路由钩子来监听路由的变化 全局路由钩子: router.beforeEach((to, from, ...
- centos7之添加开机启动服务/脚本
一.添加开机启动脚本 #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to ...