将 QMainWindow 中的 enterPressed() 连接到 Button clicked()

Connect enterPressed() in QMainWindow to Button clicked()

本文关键字:Button clicked 连接 QMainWindow enterPressed 中的      更新时间:2023-10-16

如何将主 GUI 窗口中的键 enterPressed(( 事件连接到特定按钮(也在主 GUI 中(?

用例:

用户启动应用程序,输入一些数据并按Enter键,将被绕过"开始"按钮被单击。

我的想法:

connect(this, SIGNAL(returnPressed()), ui.btn_Start, SLOT(clicked()));
class ClassA : QMainWindow
{
    Q_OBJECT
    // ...
    private:
        Ui::ClassAClass ui;
    // ...
};

您可以将信号连接到其他信号:

connect(this, &MainWindow::returnPressed, ui.btn_Start, &QPushButton::released);

仅此而已。信号被转发到QPushButton的实例信号发出它,因此连接到它的任何内容都将被调用。此外(您谈论事件(在重新实现QMainWindow::keyPressEvent

class MainWindow : public QMainWindow
{
//...
signals:
    void returnPressed() const;
protected:
    void keyPressEvent(QKeyEvent *event);
};
void MainWindow::keyReleaseEvent(QKeyEvent *event)
{
    if(event->key() == Qt::Key_Return)
        emit returnPressed();
    QMainWindow::keyReleaseEvent(event);
}