2016-09-27 9 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, чтобы он работал на платформе по вашему выбору и, конечно же, внес изменения.

Действие, вероятно, будет работать, если вы должны переключиться на диалог с неродным файлом.