pyqt5-QPushButton
1、介绍
一般按钮。
2、类和初始化
class QPushButton(QAbstractButton):
"""
QPushButton(parent: QWidget = None)
QPushButton(str, parent: QWidget = None)
QPushButton(QIcon, str, parent: QWidget = None)
"""
def __init__(self, *__args):
pass
- 继承关系:QPushButton->QAbstractButton->QWidget
3、属性
4、方法
(1)addAction
- 作用是添加一个QAction对象,普通按钮并不会对其进行显示,但是可以作为一个缓存空间,存储一些str字面量
- 参数是一个QAction对象
示例:
x1 = QAction("abc")
self.ui.pushButton_2.addAction(x1)
(2)actions
- 作用是获取存储的QAction对象列表,返回类型是list
- 如果没有手动添加QAction对象,返回空列表[]
self.ui.pushButton_2.actions()[0].text()
(3)是否可用
setEnabled(self, a0: bool)
- 该方法是QWidget类中的方法,设置组件是否可用。按钮组件使用该方法的场景较多,比如状态控制时禁止某按钮操作。当设置为False时,不能触发事件,显示样式有明显变化。
5、事件
(1)点击事件
clicked(self, checked: bool = False) [signal]
- 左键点击事件触发,右键无效
6、event事件
(1)双击事件
mouseDoubleClickEvent(self, a0: QMouseEvent)
- 注意该事件是鼠标双击触发,左键双击或者右键双击都可,当然,不能一左一右。
- 左键双击触发时,会先触发clicked事件,然后才是该事件
7、状态控制
通过按钮实现启动、暂停、继续、终止的状态控制。
self.status = 0
self.window.pushButton: QPushButton
self.window.pushButton_2: QPushButton
self.window.pushButton.setText('启动')
self.window.pushButton_2.setText('终止')
self.window.pushButton_2.setEnabled(False)
self.window.pushButton.clicked.connect(self.run_stop)
self.window.pushButton_2.clicked.connect(self.end)
def run_stop(self):
self.window.pushButton: QPushButton
# 为0未启动状态,变为1运行
if self.status == 0:
# 用于参数检查,子线程开启。如果参数不符合,则return返回,不改变状态
...
# 正常启动
self.status = 1
self.window.pushButton_6.setText('运行中(点击暂停)')
# 为2暂停中状态,变为1运行
elif self.status == 2:
self.status = 1
self.window.pushButton_6.setText('运行中(点击暂停)')
# 为1运行中,变为2暂停中
else:
self.status = 2
self.window.pushButton.setText('暂停中(点击运行)')
self.window.pushButton_2: QPushButton
self.window.pushButton_2.setEnabled(True)
def end(self):
# 设置为终止状态
self.status = 3
self.window.pushButton: QPushButton
self.window.pushButton.setText('---')
self.window.pushButton.setEnabled(False)
self.window.pushButton_2: QPushButton
self.window.pushButton_2.setText('已终止')
self.window.pushButton_2.setEnabled(False)