PyQt实现程序主动触发按钮按下

在程序中主动触发按钮,改变按钮的状态,其效果与人为按下按钮效果一样。

在下图中制作了两个按钮,当一个按钮按下时,再去按另一个按钮时,第一个被按下的按钮会被关闭,图中滑动按钮可在我的下一篇文章中详解。

一、示意图

示意图

二、代码

from PyQt5.QtCore import QCoreApplication, Qt
from PyQt5.QtGui import QMouseEvent


def fake_clicked(_button):
    event = QMouseEvent(
        QMouseEvent.MouseButtonRelease,
        pos=_button.mapToGlobal(QPoint(0, 0)),
        globalPos=_button.mapToGlobal(QPoint(0, 0)),
        button=Qt.LeftButton,
        buttons=Qt.LeftButton,
        modifiers=Qt.NoModifier)
    QCoreApplication.postEvent(_button, event)

使用fake_clicked函数,并传入需要按下的按钮对象,就可以使按钮被主动触发

三、参数详情

1. 鼠标按下后施放事件  QMouseEvent.MouseButtonRelease,
2. 鼠标事件发生时的窗口坐标   _button.mapToGlobal(QPoint(0, 0)),
3. 鼠标事件发生时的全局坐标  _button.mapToGlobal(QPoint(0, 0)),
4. 触发事件的按钮  Qt.LeftButton,
5. 触发事件时所有按钮的状态  buttons=Qt.LeftButton,
6. 事件发生时的修饰键状态  modifiers=Qt.NoModifier

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值