为什么打开的对话框不以主窗口为中心?
void MainWindow::on_FileOpenAction_triggered()
{
QStringList fileNames = QFileDialog::getOpenFileNames(
this,
"Open Image",
QApplication::applicationDirPath(),
"Images (*.jpg);;All Files (*.*)"
);
}
文档说应该可行:
此函数使用给定的父窗口小部件创建模态文件对话框。如果parent不为0,则对话框将显示在父窗口小部件的中心。
我在Windows XP SP2上使用QT 4.6.3。
答案 0 :(得分:1)
同样在documentation中的内容如下:
在Windows上,对话框将旋转一个阻塞模式事件循环,该循环不会调度任何QTimers,如果parent不是0,那么它将把对话框放在父标题栏的正下方。
这是发生了什么事吗?如果没有,我猜你在Qt中发现了一个错误。
答案 1 :(得分:0)
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的文件对话框而不是本机文件对话框。