看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Windows11 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Vc2022 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Opencv 問題(Question): 我想建立qt的image viewer,可以在QfileDialog 中選擇資料夾,並在Qlabel上循環播放這些圖片(大約要顯示5000張) 不過我執行時卻只有顯示最後一張圖 請問程式碼可以怎樣改呢? 另外對於要讀取大量的檔案,感覺用for (inti=0; i < file.count();i ++)的寫法很沒 效率 不曉得是否有其他寫法 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) // testViewer.cpp Void testViewer:: OpenActionFile(){ QstringList filename = QFileDialog::getOpenFileNames(this, tr(“open file”), “ loading file”, tr(“ *.jpg “); for(int i =0; i< filename.count(); i++){ ui -> label -> setText(filename.at(i)); Mat src_ = cv:: imread(filename.at(i).toStdString(), cv:: IMREAD_ANYDEPTH); }; if (filename.isEmpty){ qDebug() <<“….. “ ; return; }; 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.175.4 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1660024662.A.541.html
qoorocker: 要顯示的時候再讀就好了吧? 記住 filepath 就好 08/09 14:52
Vvvahc: 有點不太明白大大所說,因為我想要載入的圖片可以自動更新 08/09 14:59
Vvvahc: ( 有點像是影片一樣) 08/09 14:59
Vvvahc: 查了一下網路上是說要用qtimer更新 08/09 14:59
Vvvahc: 不過沒有範例所以我還在試 08/09 14:59
lycantrope: 又不需要一次讀取全部圖片,要顯示再讀取,或是讀取 08/09 18:08
lycantrope: 幾張圖片cache 08/09 18:08
john790710: 你的寫法就一次讀完,所以只會顯示最後一張 08/09 20:09
john790710: 接QTimer的timeout() signal來更新 08/09 20:10