2016-09-27 39 views
0

我得到的FileDialog叫我这段代码的主窗口内:的Qt 5.7 QFileDialog行动不起作用

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或者他们已经在某种程度上忽略。有什么建议么? 已经尝试过窗口标志,选项等。找不到任何解决方案。

回答

3

默认情况下,QFileDialog是本机对话框的薄包装。 Qt没有达到围绕本机对话框打包动作所需的时间长度。所以这是一个缺少实现的情况。您可以修补Qt,使其在您选择的平台上运行,当然,还可以为变更做出贡献。

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