首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载项目后QFileDialog显示不佳

加载项目后QFileDialog显示不佳
EN

Stack Overflow用户
提问于 2016-05-04 08:07:39
回答 1查看 1.5K关注 0票数 1

我和我的朋友正在开发的一个软件中,QFileDialog有一个问题。

该软件是用C++/Qt(5.6)编写的CAD软件,因此采用了大量的MVC设计模式。问题如下:

当我们要加载或保存一个项目时,我们使用QFileDialog。

-When我们启动软件,我们首先加载项目,一切都很好

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

我看到的唯一不同是,在第一次加载之后,将创建和更新QGraphicsItem,以便显示已加载项目的各个部分。你知道有什么问题吗?

编辑-代码

代码语言:javascript
复制
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不使用本机对话框,我们可以正确地显示窗口。

代码语言:javascript
复制
fileDialog.setOption(QFileDialog::DontUseNativeDialog,true);

我们在Linux 17.2上使用肉桂。你知道Qt和肉桂之间有什么冲突吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-04 10:05:29

这可能是相对目录/路径"./.."的问题。尝试用其他东西替换它,例如QDir::home().absolutePath()

代码语言:javascript
复制
QFileDialog fileDialog(0,
                       tr("Load Project"), 
                       QDir::home().absolutePath(), 
                       tr("CAD files (*.json)"));

Qt还可能与安装在机器上的某些内容发生冲突,@Eleven6月指出:

通过强制Qt不使用本机对话框,我们可以正确地显示窗口。

这听起来像是一场冲突..。您是否在应用程序中使用Qt以外的任何其他库?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37021951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档