Qt 制表符顺序键

Posted

技术标签:

【中文标题】Qt 制表符顺序键【英文标题】:Qt tab order keys 【发布时间】:2014-03-07 19:41:06 【问题描述】:

用户可以通过“Tab”键或箭头键“”来逐步浏览 QtGUI 的小部件。

有人知道如何为此禁用箭头键吗?我需要箭头键来做其他事情。

【问题讨论】:

【参考方案1】:

您需要在自己的 QWidget 子类中重新实现 corresponding event,如下所示:

bool MyWidget::keyPressEvent(QKeyEvent *keyEvent)

    if (keyEvent->key() == Qt::Key_Left || keyEvent->key() == Qt::Key_Right) 
        // Do nothing
     else 
        QWidget::keyPressEvent(keyEvent);
    

【讨论】:

【参考方案2】:

只需重新实现主窗口的 event() 或 keyPressEvent() / keyReleaseEvent()。在重新实现的方法中,您可以放置​​所需的操作。

【讨论】:

【参考方案3】:

我可能会为此目的使用 QAction。所以你不需要子类化。

QTabBar *tabBar;
........................
QAction* pLeftArrowAction = new QAction(this);
pLeftArrowAction->setShortcut(Qt::Key_Left);
QAction* pRightArrowAction = new QAction(this);
pRightArrowAction->setShortcut(Qt::Key_Right);
tabBar->addActions(QList<QAction*>() << pLeftArrowAction << pRightArrowAction);

【讨论】:

以上是关于Qt 制表符顺序键的主要内容,如果未能解决你的问题,请参考以下文章

Qt QLabel 富文本制表

数据文件的内容中,字段中间用制表符Tab键分隔。

使用 Qt 的 QLabel 类更改呈现的 HTML 中的制表位大小

WORD文档里面的制表符怎样用

从 UserControls 使用时在 wpf 中设置制表符顺序?

公式中的制表符键盘键