我使用以下代码在我的主窗口中调用了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
添加任何操作,或者它们以某种方式被省略。有什么建议?
已经尝试过窗口标志,选项等。无法找到任何解决方案。
答案 0 :(得分:3)
默认情况下,var post: Dictionary<String, AnyObject>
let childUpdates = ["/user-posts/\(userIDs[0])": post,
"/user-posts/\(userIDs[1])": post,
"/user-posts/\(userIDs[2])": post,
"/user-posts/\(userIDs[3])": post]
是本机对话框的精简包装。 Qt没有达到围绕原生对话框包装动作所需的长度。所以这是一个缺少实现的情况。您可以修补Qt,使其在您选择的平台上运行,当然也可以回馈更改。
如果您要切换到非本机文件对话框,该操作可能会起作用。