使用 Qt 的 QDialogBu​​ttonBox 时,Tab 仅在 macOS 上跳过按钮

问题描述

我正在运行一个简单的测试程序,它使用 Qt 的 QDialogBu​​ttonBox 创建四个按钮。在 Linux 上按预期从一个按钮切换到另一个按钮:所有四个按钮依次获得焦点。

但在使用 Qt 5.15.2 的 macOS 10.13.6 上,Tab 仅在前三个按钮之间移动。但是,Shift-tab 在所有四个按钮之间以相反的方向移动。

我已经尝试给按钮赋予不同的角色值(例如,否、是、接受、拒绝),并且根本没有设置焦点策略,但 Tab 仍然没有访问所有按钮。

这是一个错误,还是一些故意的 macOS 界面奇怪?如果是后者,确保 Tab 访问所有平台上的所有按钮的最佳方法是什么?

#include <QtWidgets>

int main(int argc,char ** argv) {
    QApplication app{argc,argv};
    QWidget w;
    QVBoxLayout layout{&w};
    QDialogButtonBox Box;
    for (auto text : {"button1","button2","button3","button4"})
        Box.addButton(text,QDialogButtonBox::norole)->setFocusPolicy(Qt::StrongFocus);
    layout.addWidget(&Box);
    w.show();
    return app.exec();
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)