在GUI设计中,按钮都是最重要的和常用的触发动作请求的方式,用来与用户进行交互操作。在PyQt中根据不同的使用场景将按钮划分为不同的表现形式。
按钮的基类是QAbstractButton,提供了按钮的通用性功能。但是它不能实例化,必须由其他的按钮类继承QAbstractButton类,来实现不同的功能、不同的表现形式。
常见的按钮类包括:QPushButton、QRadioButton和QCheckBox等。这些按钮类均继承自QAbstractButton类,根据各自的使用场景通过图形展现出来。
QAbstractButton提供的状态如下表所示:
QAbstractButton提供的信号如下表所示:
1、QPushButton按钮类
QPushButton类继承自QAbstractButton类,其形状是长方形,文本标题或图标可以显示在长方形上。
QPushButton类是一种命令按钮,可以单击该按钮执行一些命令,或者响应一些事件,常见的有:“确认"、"申请"、"取消"、"关闭"、"是"、"否"等按钮。
QPushButton类中的常用方法如下表所示:
来看看QPushButton按钮类的示例,效果如下所示:
在这个例子中,创建了btn1、btn2、btn3和btn4四个按钮,这四个QPushButton对象被定义为类的实例变量。每个按钮都将clicked信号发送给指定的槽函数,以响应按钮点击事件。
- 第1个按钮btn1,通过toggle()函数来切换按钮状态。当点击这个按钮时,将clicked信号发送给槽函数btnstate(),通过btn.isChecked来获得按钮是否被点击或释放的状态。还可以通过lambda的方式来传递额外的参数btn1,将clicked信号发送给槽函数whichbtn()。
- 第2个按钮btn2,上面显示一个图标。使用setlcon()方法接收一个QPixmap对象的图像文件作为输入参数。
- 第3个按钮btn3,使用setEnabled()方法来禁用bnt3按钮。
- 第4个按钮btn4,使用setDefault()方法来设置按钮的默认状态。快捷键是“&+文本”(\&Download),通过“Alt+D”快捷键来调用槽函数。
实现代码如下所示:
```python import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *
class Form(Q