我和我的朋友正在开发的一个软件中,QFileDialog有一个问题。
该软件是用C++/Qt(5.6)编写的CAD软件,因此采用了大量的MVC设计模式。问题如下:
当我们要加载或保存一个项目时,我们使用QFileDialog。
-When我们启动软件,我们首先加载项目,一切都很好

-When我们再次尝试加载,QFileDialog显示不太好。它似乎没有冻结,唯一显示的部分(文件夹部分,左边)响应,但没有在中心显示任何文件。

我看到的唯一不同是,在第一次加载之后,将创建和更新QGraphicsItem,以便显示已加载项目的各个部分。你知道有什么问题吗?
编辑-代码
QFileDialog fileDialog(0,tr("Load Project"), "./..", tr("CAD files (*.json)"));
fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
fileDialog.setFileMode(QFileDialog::ExistingFiles);
if (QDialog::Accepted != fileDialog.exec())
return NULL;
QStringList sel = fileDialog.selectedFiles();编辑2-A工作解决方案通过强制Qt不使用本机对话框,我们可以正确地显示窗口。
fileDialog.setOption(QFileDialog::DontUseNativeDialog,true);我们在Linux 17.2上使用肉桂。你知道Qt和肉桂之间有什么冲突吗?
发布于 2016-05-04 10:05:29
这可能是相对目录/路径"./.."的问题。尝试用其他东西替换它,例如QDir::home().absolutePath()
QFileDialog fileDialog(0,
tr("Load Project"),
QDir::home().absolutePath(),
tr("CAD files (*.json)"));Qt还可能与安装在机器上的某些内容发生冲突,@Eleven6月指出:
通过强制Qt不使用本机对话框,我们可以正确地显示窗口。
这听起来像是一场冲突..。您是否在应用程序中使用Qt以外的任何其他库?
https://stackoverflow.com/questions/37021951
复制相似问题