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)

 

posted @ 2023-04-16 23:36  挖洞404  阅读(75)  评论(0编辑  收藏  举报