gpt4 book ai didi

C++ QT OSX Qt::META+Qt::Key_Tab 快捷键绑定(bind)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:55 29 4
gpt4 key购买 nike

我正在尝试在 QTabWidget 中绑定(bind) Qt::META + Qt::Key_Tab 快捷方式来切换标签(就像它在 Chrome 或许多其他应用程序)。我已经尝试了在谷歌中找到的每一个解决方案,但这个快捷方式组合不起作用。

我试过:

  • Qt::Key_Control + Qt::Key_TabQt::Key_Meta + Qt::Key_Tab 组合code>, QKeySequence(Qt::Key_Meta, Qt::Key_Tab), QKeySequence(Qt::META, Qt::Key_Tab) 等
  • QShortcut
  • QAction
  • 使用虚拟 QWidget::event 捕获键
  • 使用虚拟 QWidget::eventFilterinstallEventFilter 捕获键
  • 所有相关的,比如 keyPressed 等等。

QWidget::event/QWidget::eventFilter 捕获 Shift+Tab, Alt+Tab,但不是 Ctrl(META)+Tab。当我按下 Ctrl 时,我看到了我的 qDebug 输出,当我按下 Ctrl + Tab 时,没有任何反应。

有人可以向我解释一下 QT on OSX 中这个特定组合键有什么问题吗?

不管是什么小部件,我已经创建了干净的 GUI 项目,其中没有其他小部件 - 仍然是一样的。

一些信息:

  • OSX Mountain Lion 10.8.5
  • QT 5.2

BTW,在 Qt Creator 中我也无法设置 Ctrl+Tab 快捷方式,这真的很荒谬。

注意:它在 Windows 上运行良好,但在 OSX 上运行不佳!

感谢任何帮助。

带有 QAction 的简单代码:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);


QAction *pAction = new QAction(this);
QKeySequence keySequence = Qt::META + Qt::Key_Tab; // Not working
// or
QKeySequence keySequence = Qt::ALT + Qt::Key_Tab; // Works Alt+Tab
// or
QKeySequence keySequence = QKeySequence(Qt::Key_Meta, Qt::Key_Tab); // Not working
// or
QKeySequence keySequence = QKeySequence(Qt::META, Qt::Key_Tab); // Not working
pAction->setShortcut(keySequence);

connect(pAction, SIGNAL(triggered()), this, SLOT(shortcut_NextTab()));

addAction(pAction);

}

和槽函数:

void MainWindow::shortcut_NextTab()
{
qDebug() << "LOL";
}

当按下 Ctrl+Tab 时,希望在应用程序输出中看到 LOL

最佳答案

这似乎是 Qt on Cocoa 中的一个错误。参见 QTBUG-8596QTBUG-12232 .第一个错误报告有一个 comment也就是说,如果您将 QAction 添加到菜单中,它就可以工作。我遇到了与您相同的问题,该解决方案对我有用。

关于C++ QT OSX Qt::META+Qt::Key_Tab 快捷键绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694919/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com