如何给已经设计好的按键点击按键,相当于启用键盘上的esc键

如何给已经设计好的按键点击按键,相当于启用键盘上的esc键

class InterfaceWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow_inter()
        self.ui.setupUi(self)
        self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.ui.pushButton_off.clicked.connect(lambda: self.ui.stackedWidget.setCurrentIndex(0))


按键名称为pushButton_off

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    可以使用Qt框架中的QKeyEvent类来模拟键盘上的esc键点击操作。

    具体步骤:

    1. 在槽函数中获取到需要模拟按键操作的按键对象,可以使用以下代码实现:
    QPushButton *btn = ui->pushButton_off;  // 获取到按键对象
    
    1. 创建QKeyEvent对象,并设置键值为Qt::Key_Escape,可以使用以下代码实现:
    QKeyEvent *keyEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_Escape, Qt::NoModifier);
    
    1. 调用QWidget::keyPressEvent函数并传入QKeyEvent对象实现按键操作,可以使用以下代码实现:
    qApp->sendEvent(this, keyEvent);  // this表示当前窗口对象,可以换成其他QWidget对象
    

    完整代码示例:

    void MainWindow::on_pushButton_off_clicked()
    {
        QPushButton *btn = ui->pushButton_off;  // 获取到按键对象
        QKeyEvent *keyEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_Escape, Qt::NoModifier);  // 创建QKeyEvent对象
        qApp->sendEvent(this, keyEvent);  // 发送按键事件
    }
    

    注:以上代码使用的是Qt框架中的信号槽机制,on_pushButton_off_clicked为槽函数名,需要在ui文件中将pushButton_off对象的clicked信号与该函数连接起来。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^