0

我在主窗口中使用以下代码调用了 filedialog:

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或者它们被某种方式省略了。有什么建议么?已经尝试过窗口标志、选项等。找不到任何解决方案。

4

1 回答 1

3

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

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

于 2016-09-27T17:32:37.320 回答