Qt 5.7 QFileDialog 操作不起作用

Qt 5.7 QFileDialog action doesn't work

我在主程序 window 中使用以下代码调用了文件对话框:

QAction *actionWithShortcut = new QAction();
actionWithShortcut->setShortcut(Qt::CTRL + Qt::Key_9);
actionWithShortcut->setShortcutContext(Qt::ShortcutContext::WidgetWithChildrenShortcut);
// added this comment to check does it work at list outside filedialog
// addAction(actionWithShortcut);
QFileDialog *fd = new QFileDialog(this);
fd->addAction(actionWithShortcut);
connect(actionWithShortcut, &QAction::triggered, fd, &QFileDialog::reject);
fd->show();

但看起来我无法向 QFileDialog 添加任何操作,或者它们以某种方式被省略了。有什么建议么? 已经尝试 window 标志、选项等。找不到任何解决方案。

默认情况下,QFileDialog 是原生对话框的薄包装。 Qt 没有达到围绕本机对话框包装操作所需的长度。所以这是一个缺少实现的情况。当然,您可以修补 Qt 以使其在您选择的平台上运行,并将更改贡献回来。

如果您切换到非本机文件对话框,该操作可能会起作用。