GetopenfileNames对话框不在主窗口中
-
30-09-2019 - |
题
为什么打开的对话框不在主窗口中?
void MainWindow::on_FileOpenAction_triggered()
{
QStringList fileNames = QFileDialog::getOpenFileNames(
this,
"Open Image",
QApplication::applicationDirPath(),
"Images (*.jpg);;All Files (*.*)"
);
}
文档说应该有效:
此功能使用给定的父窗口创建模态文件对话框。如果父母不是0,则将显示对话框以父窗口为中心。
我在Windows XP SP2上使用QT 4.6.3。
解决方案
QT中有一个错误或文档中的错误。如果您想要一个集中的对话框,请避免使用静态功能并以此方式创建对话框:
QFileDialog dialog(
this,
"Open Image",
QApplication::applicationDirPath(),
"Images (*.jpg);;All Files (*.*)");
dialog.setFileMode(QFileDialog::ExistingFiles);
QStringList fileNames;
if (dialog.exec())
fileNames = dialog.selectedFiles();
请注意,这使用QT的文件对话框,而不是本机文件对话框。
其他提示
也在 文档 如下:
在Windows上,对话框将旋转一个不会派遣任何QTimers的模态事件循环,如果父母不是0,则将对话框放置在父母的标题栏下方。
这是发生什么吗?如果没有,我想您在QT中发现了一个错误。
不隶属于 StackOverflow