PyQt5切换按钮控件QPushButton简介
QAbstractButton类为抽象类,不能实例化,必须由其他的按钮类继承QAbstractButton类,来实现不同的功能和表现形式,常见的按钮QPushButton,QToolButton,QRadioButton和QCheckBox这些按钮均继承自QAbstractButton类,根据各自的使用场景通过图形显示出来
QAbstractButton提供的状态如下表
QAbstractButton提供的信号如下表
QPUshButton类中的常用方法
为QPushButton设置快捷键
通过按钮名字能为QPushButton设置快捷键,比如名字为‘&Download'的按键,它的快捷键是‘Alt+D'。其规则是;想要实现快捷键为“Alt+D”,那么按钮的名字里有D这个字母,并且在D的前面加上“&”,这个字母D一般是按钮名称的首字母,而且在按钮显示时。“&”不会显示出来,如果想显示,那么需要转义,核心代码如下
self.btn4=QPushButton('&Download') self.btn4.setDefault(True)
QPushButton按钮的使用实例
import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class Form(QDialog): def __init__(self,parent=None): super(Form, self).__init__(parent) #垂直布局 layout=QVBoxLayout() #创建按钮1 self.btn1=QPushButton('Button1') #setCheckable():设置按钮是否已经被选中,如果为True,则表示按钮将保持已点击和释放状态 self.btn1.setCheckable(True) #toggle():在按钮状态之间进行切换 self.btn1.toggle() #点击信号与槽函数进行连接,这一步实现:在控制台输出被点击的按钮 self.btn1.clicked.connect(lambda :self.whichbtn(self.btn1)) #点击信号与槽函数进行连接,实现的目的:输入安妞的当前状态,按下还是释放 self.btn1.clicked.connect(self.btnstate) #添加控件到布局中 layout.addWidget(self.btn1) #创建按钮2 self.btn2=QPushButton('image') #为按钮2添加图标 self.btn2.setIcon(QIcon(QPixmap('E:\pyqt5快速开发与实战\第四章\images\python.png'))) ##点击信号与槽函数进行连接,这一步实现:在控制台输出被点击的按钮 self.btn2.clicked.connect(lambda :self.whichbtn(self.btn2)) layout.addWidget(self.btn2) self.btn3=QPushButton('Disabled') #setEnabled()设置按钮是否可以使用,当设置为False的时候,按钮变成不可用状态,点击它不会发射信号 self.btn3.setEnabled(False) layout.addWidget(self.btn3) #创建按钮并添加快捷键 self.btn4=QPushButton('&Download') #setDefault():设置按钮的默认状态 self.btn4.setDefault(True) ##点击信号与槽函数进行连接,这一步实现:在控制台输出被点击的按钮 self.btn4.clicked.connect(lambda :self.whichbtn(self.btn4)) layout.addWidget(self.btn4) self.setWindowTitle("Button demo") self.setLayout(layout) def btnstate(self): #isChecked():判断按钮的状态,返回值为True或False if self.btn1.isChecked(): print('button pressed') else: print('button released') def whichbtn(self,btn): #输出被点击的按钮 print('clicked button is '+btn.text()) if __name__ == '__main__': app=QApplication(sys.argv) btnDemo=Form() btnDemo.show() sys.exit(app.exec_())
效果图如下
QPushButton代码分析:
在这个例子中,创建了四个按钮,这四个QPushButton对象被定义为类的实例变量,每个按钮都将clicked的信号发送给指定的槽函数,来响应按钮点击的事件
第一个按钮btn1,**通过toggle()函数来切换按钮的状态,其核心代码是
self.btn1=QPushButton('Button1') self.btn1.setCheckable(True) self.btn1.toggle()
当这个按钮点击时,将clicked信号发送给槽函数btnstate(),通过btn.isChecked来获得按钮是否被点击或者释放的状态,其核心代码是
self.btn1.clicked.connect(self.btnstate)
还可以通过lambda表达式来传递额外的参数btn1,将clicked信号发送给槽函数whichbtn(),其核心代码
self.btn1.clicked.connect(lambda :self.whichbtn(self.btn1))
第二个按钮btn2,上面显示一个图标,使用setIcon()方法接受一个QPixmap对象的图像文件作为输入参数,其核心代码是
self.btn2.setIcon(QIcon(QPixmap('E:\pyqt5快速开发与实战\第四章\images\python.png')))
第三个按钮btn3,使用setEnabled()方法来禁用btn3按钮
self.btn3.setEnabled(False)
第四个按钮btn4,使用setDefault()方法·来设置按钮的默认状态。快捷键是‘&+文本'(&Download),通过‘Alt+D'快捷键来调用槽函数
self.btn4=QPushButton('&Download')
本文主要讲解了PyQt5切换按钮控件QPushButton详细使用方法与实例,更多关于PyQt5控件教程请查看下面的相关链接
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 房东的猫2017-房东的猫[科文音像][WAV+CUE]
- 杨乃文.2016-离心力(引进版)【亚神音乐】【WAV+CUE】
- 群星.2024-珠帘玉幕影视原声带【TME】【FLAC分轨】
- 芝麻龙眼.2008-光阴隧道民歌记录3CD【乡城】【WAV+CUE】
- 谭艳《再度重相逢HQII》头版限量[低速原抓WAV+CUE][549M]
- ABC唱片《蔡琴三十周年纪念版》6N纯银镀膜 [WAV+CUE][1.1G]
- 海来阿木《西楼情歌》开盘母带[WAV+CUE][1.1G]
- TheGesualdoSix-QueenofHeartsLamentsandSongsofRegretforQueensTerrestrialandCele
- 王建杰2011-荣华富贵[喜玛拉雅][WAV+CUE]
- 孙悦2024-时光音乐会[金蜂][WAV+CUE]
- 秦宇子.2020-#YUZI【海蝶】【FLAC分轨】
- 苏有朋.1994-这般发生【华纳】【WAV+CUE】
- 小虎队.1990-红蜻蜓【飞碟】【WAV+CUE】
- 雷婷《寂寞烟火HQⅡ》头版限量[低速原抓WAV+CUE][1G]
- 赵传1996《黑暗英雄》台湾首版[WAV+CUE][1G]