【问题标题】:How do I assign a shortcut to a QPushButton?如何为 QPushButton 分配快捷方式?
【发布时间】:2014-09-23 00:40:46
【问题描述】:

为 QPushButton 分配快捷方式的文档如下:


可以通过在文本中在首选字符前加上 & 号来指定快捷键。例如:

QPushButton *button = new QPushButton("&Download", this);

在本例中,快捷键是 Alt+D。


如果我不想要Alt+[A-Z] 快捷方式怎么办?例如,在我的情况下,我希望在按下 TAB 按钮时触发我的按钮。我怎样才能达到这个效果?

【问题讨论】:

    标签: c++ qt qpushbutton


    【解决方案1】:

    你可以使用setShortcut方法,例如:

    pushButton->setShortcut(QKeySequence(Qt::Key_Tab));
    

    它将触发分配给clicked() 信号的插槽

    【讨论】:

      【解决方案2】:

      您可以使用QShortcut。另一个提示:Qt 信号/插槽机制允许您将信号连接到信号。

      【讨论】:

        【解决方案3】:

        您可以重载 QWidget::keyPressEvent 并直接或通过以前专门连接的信号触发您的按钮点击

        void MainWindow::keyPressEvent(QKeyEvent * pEvent)
        {
            if (Qt::Key_Tab == pEvent->key())
            {
                ui->button->click();
            }
        
            QMainWindow::keyPressEvent(pEvent);
        }
        

        【讨论】:

          【解决方案4】:

          您可以在QShortcut的构造函数中定义键、目标对象及其相关槽:

          QShortcut * shortcut = new QShortcut(QKeySequence(Qt::Key_Tab),button,SLOT(click()));
          shortcut->setAutoRepeat(false);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-05-17
            • 1970-01-01
            • 2018-10-28
            • 1970-01-01
            • 2021-08-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多