pythonGUI库图形界⾯开发之PyQt5切换按钮控件
QPushButton详细使⽤⽅法与实例
PyQt5切换按钮控件QPushButton简介
QAbstractButton类为抽象类,不能实例化,必须由其他的按钮类继承QAbstractButton类,来实现不同的功能和表现形式,常见的按钮QPushButton,QToolButton,QRadioButton和QCheckBox这些按钮均继承⾃QAbstractButton类,根据各⾃的使⽤场景通过图形显⽰出来
QAbstractButton提供的状态如下表
状态含义
isDown()提⽰按钮是否已按下
isChecked()提⽰按钮是否已经标记
isEnable()提⽰按钮是否可以被⽤户点击
isCheckAble()提⽰按钮是否为可标记的
setAutoRepeat()设置按钮是否在⽤户长按时可以⾃动重复执⾏
QAbstractButton提供的信号如下表
信号含义
Pressed当⿏标指针在按钮上并按下左键时触发该信号
Released当⿏标左键被释放时触发该信号
Clicked当⿏标左键被按下然后释放时,或者快捷键被释放时触发该信号
Toggled当按钮的标记状态发⽣改变时触发该信号
QPUshButton类中的常⽤⽅法
⽅法描述
setCheckable()设置按钮是否已经被选中,如果设置True,则表⽰按钮将保持已点击和释放状态
toggle()在按钮状态之间进⾏切换
setIcon()设置按钮上的图标
setEnabled()设置按钮是否可以使⽤,当设置为False时,按钮变成不可⽤状态,点击它不会发射信号
isChecked()返回按钮的状态,返回值为True或者False
setDefault()设置按钮的默认状态
setText()设置按钮的显⽰⽂本
text()返回按钮的显⽰⽂本
为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():在按钮状态之间进⾏切换
le()
#点击信号与槽函数进⾏连接,这⼀步实现:在控制台输出被点击的按钮
self.t(lambda :self.whichbtn(self.btn1))
#点击信号与槽函数进⾏连接,实现的⽬的:输⼊安妞的当前状态,按下还是释放
self.t(self.btnstate)
#添加控件到布局中
layout.addWidget(self.btn1)
#创建按钮2
self.btn2=QPushButton('image')
#为按钮2添加图标
self.btn2.setIcon(QIcon(QPixmap('E:\pyqt5快速开发与实战\第四章\images\python.png')))
##点击信号与槽函数进⾏连接,这⼀步实现:在控制台输出被点击的按钮
self.t(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.t(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 '+())
if __name__ == '__main__':
app=QApplication(sys.argv)
btnDemo=Form()
btnDemo.show()
<_())
效果图如下
QPushButton代码分析:
在这个例⼦中,创建了四个按钮,这四个QPushButton对象被定义为类的实例变量,每个按钮都将clicked的信号发送给指定的槽函数,来响应按钮点击的事件
第⼀个按钮btn1,**通过toggle()函数来切换按钮的状态,其核⼼代码是
self.btn1=QPushButton('Button1')
self.btn1=QPushButton('Button1')
self.btn1.setCheckable(True)
le()
当这个按钮点击时,将clicked信号发送给槽函数btnstate(),通过btn.isChecked来获得按钮是否被点击或者释放的状态,其核⼼代码是
self.t(self.btnstate)
还可以通过lambda表达式来传递额外的参数btn1,将clicked信号发送给槽函数whichbtn(),其核⼼代码
self.t(lambda :self.whichbtn(self.btn1))
app开发实例第⼆个按钮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控件教程请查看下⾯的相关链接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论