zoukankan      html  css  js  c++  java
  • 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()      切换信号-选中状态发生变化时发出信号     (一般在单选框或者复选框中使用)

    只有把按钮设置为可以被选中才会发出这个信号

    会向槽函数传递一个布尔值(按钮是否被选中)

    天子骄龙

  • 相关阅读:
    javascript面向对象(三)--继承
    javascript面向对象(一)
    jsp/servlet学习笔记(核心编程)mysql部分
    jsp/servlet学习笔记(核心编程)servlet部分
    没有为扩展名“.html”注册的生成提供程序
    vs2012 mvc3项目ObjectContext与DBContext(转载)
    反射与动态代理
    spring-ioc

    哈希表
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10729116.html
Copyright © 2011-2022 走看看