QAbstractButton类为抽象类,不能实例化,必须由其他的按钮类继承QAbstractButton类,来实现不同的功能和表现形式,常见的按钮QPushButton,QToolButton,QRadioButton和QCheckBox这些按钮均继承自QAbstractButton类,根据各自的使用场景通过图形显示出来
状态
|
含义
|
isDown()
|
提示按钮是否已按下
|
isChecked()
|
提示按钮是否已经标记
|
isEnable()
|
提示按钮是否可以被用户点击
|
isCheckAble()
|
提示按钮是否为可标记的
|
setAutoRepeat()
|
设置按钮是否在用户长按时可以自动重复执行
|
信号
|
含义
|
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)
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()
self.btn1=QPushButton('Button1')
self.btn1.setCheckable(True)
self.btn1.toggle()
self.btn1.clicked.connect(lambda :self.whichbtn(self.btn1))
self.btn1.clicked.connect(self.btnstate)
layout.addWidget(self.btn1)
self.btn2=QPushButton('image')
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')
self.btn3.setEnabled(False)
layout.addWidget(self.btn3)
self.btn4=QPushButton('&Download')
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):
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对象被定义为类的实例变量,每个按钮都将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')
源码以及相关文件下载:https://download.csdn.net/download/jia666666/10597897
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class QPushButtonDemo(QDialog):
def __init__(self):
super(QPushButtonDe
文章目录一 、QPushButton 简介二、构造函数三、功能(API)1. 菜单(menu)功能1.1 添加一个Action1.2 添加一个子菜单1.3 添加一个分割线1.4 显示菜单2. 扁平化3. 右键菜单
一 、QPushButton 简介
QPushButton 控件是一个非常常用的按钮控件,它继承自QABstractButton。
二、构造函数
QPushButton 可以设置父控...
最近学校开了门web课,在此我发现其实qt的QSS和CSS差不多。用border-image引入图片可以使图片大小自适应按钮。这里记录一下怎么在pyqt5中把按钮的背景设置为图片。
Python-PyQt5-图形可视化界面(3)--按钮--Qpushbutton
转载自:Python-PyQt5-图形可视化界面(3)--按钮--Qpushbutton - 简书
https://www.jianshu.com/p/a3f29d3bb234
PyQt5中按钮是一个QpushButton,可以提供一个点击的按钮来触发摸一个事件。
按钮可以显示图片或者文字。
创建按钮
我们...
关注、星标公众号,直达精彩内容公众号:技术让梦想更伟大作者:Boudewijn Rempt 和 David Mertz最近在使用pyqt写个自动化测试软件,对python和Qt都需要有一...
对与控件QPushButton中的可以使用setStyleSheet设置它背景图片。具体设置背景图片的方法有两种
self.button.setStyleSheet(QPushButton{background-image: url(img/1.png)})
然而对于这种方法背景图片无法进行边框的自适应,可以使用下面的方法
self.button.setStyleSheet(QPushButton{border-image: url(img/1.png)})
可以做到自适应边框。
代码里面有两个图片需要使用,我放在下面了
import sys
from Py
常见的按钮类包括:QPushButton、QRadioButton和QCheckBox等。这些按钮类均继承自QAbstractButton类,根据各自的使用场景通过图形展现出来。
学习《PyQt4入门指南 PDF中文版.pdf 》笔记
PyQt5没有开关按钮部件。但是我们可以使用在特殊状态下的QPushButton部件来创建开关按钮。而所谓的开关的按钮就是一个具有按下和未按下两种状态的普通按钮。用户可以通过点击按钮来切换其开或关状态。在一些情况下,这个特性会非常好用。#!/usr/bin/python
# togglebutton.py
from PyQt5.QtW
class QPushButton构造一个不带文本和父项的按钮。构造一个带图标,文本和父项的按钮。请注意,您还可以将QPixmap对象作为图标传递(由于C ++提供了隐式类型转换)。
border-radius: 30px;
background-color: rgb(255, 170, 127);
border: 2px solid rgb(255, 85, 0);
color: white;
QPushButton:hover{
border: 4px double rgb(0, 255, 0);
QPushButton:checked{
background..
loc_button_statics='src/pic/main_button_statics.png'
loc_button_statics_hover='src/pic/main_button_statics_hover.png'
button_statics.setStyleSheet("QPushButton{\n"
"border-image: url(\"%(loc1)s\");\n"
#"ba.