为什么我的qt文件对话框不正确?

时间:2016-05-22 13:11:48

标签: c++ qt

我目前正在使用Qt 5.6创建一个GUI,我想让用户打开一个文件。我在我的主窗口类中使用以下代码执行此操作:

#include <QFileDialog>
...
void MainWindow::loadScene()
{

    QString loadPath = QFileDialog::getOpenFileName(this,
                        tr("Choose a scene file"), QString("."),
                        tr("Scene files (*.keyScene)"));

    if(!loadPath.isEmpty())
        resourceManager->loadScene(loadPath.toStdString());
}

我得到以下对话框:

Screenshot of open file dialog

我使用的系统是Ubuntu 16.04,我也在Ubuntu 14.04和Mint 17.3上测试过。我得到了完全相同的结果。

当我在Windows中编译项目时,一切正常。

修改

有人建议我在创建文件对话框时使用DontUseNativeDialog标志,我可以使用以下代码获得一个有效的Qt样式文件对话框:

QFileDialog dialog(this);
dialog.setAcceptMode(QFileDialog::AcceptOpen);
dialog.setOption(QFileDialog::Option::DontUseNativeDialog, true);
if(!dialog.exec())
    return;

所以问题实际上是为什么原生文件对话框没有正确呈现。

0 个答案:

没有答案