2016-05-04 54 views
1

我的朋友和我正在開發的軟件中的QFileDialog存在問題。加載項目後QFileDialog顯示不好

該軟件是用C++/Qt(5.6)編程的CAD,因此它使用了很多MVC設計模式。問題如下:

當我們要加載或保存項目時,我們使用QFileDialog。

- 當我們啓動該軟件,我們首先加載的項目,一切工作正常 First call to open file

- 當我們嘗試再次裝入時,QFileDialog不顯示良好。它看起來沒有凍結,唯一顯示的部分(左側的文件夾部分)響應,但不在中心顯示任何文件。 Second Call

我看到的唯一區別是,第一次加載後,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(); 

EDIT 2 - A工作液 通過強制的Qt不使用本地對話框,我們可以正確地顯示一個窗口。

我們在Linux薄荷17.2肉桂。你知道Qt和肉桂之間有任何衝突嗎?

+2

請在你打開文件對話框的地方發佈代碼。 – Tomas

+0

對不起,我添加了代碼 – ElevenJune

回答

0

這可能是相對目錄/路徑"./.."的問題。試着用別的東西代替它,例如QDir::home().absolutePath()

QFileDialog fileDialog(0, 
         tr("Load Project"), 
         QDir::home().absolutePath(), 
         tr("CAD files (*.json)")); 

Qt還可能與一些被安裝在機器上,通過@ElevenJune指出的相互矛盾的:

通過強制的Qt不使用本機我們可以正確顯示一個窗口。

這聽起來像是對我的衝突...你是否在應用程序中使用除Qt以外的任何其他庫?

+0

謝謝。我試過但結果相同... – ElevenJune

+1

@ElevenJune你有沒有試過在另一臺機器上運行它?或其他操作系統(如果可能的話)? Qt可能與機器上安裝的東西衝突... –

+0

可能是這樣。當我們強制不使用本地對話框(請參閱更新)它的作品。 – ElevenJune