作者Vvvahc (我来搞事了)
看板C_and_CPP
标题[问题] qimage载入资料夹中所有图片
时间Tue Aug 9 13:57:40 2022
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1660024662.A.541.html
1F:→ qoorocker: 要显示的时候再读就好了吧? 记住 filepath 就好 08/09 14:52
2F:→ Vvvahc: 有点不太明白大大所说,因为我想要载入的图片可以自动更新 08/09 14:59
3F:→ Vvvahc: ( 有点像是影片一样) 08/09 14:59
4F:→ Vvvahc: 查了一下网路上是说要用qtimer更新 08/09 14:59
5F:→ Vvvahc: 不过没有范例所以我还在试 08/09 14:59
6F:推 lycantrope: 又不需要一次读取全部图片,要显示再读取,或是读取 08/09 18:08
7F:→ lycantrope: 几张图片cache 08/09 18:08
8F:→ john790710: 你的写法就一次读完,所以只会显示最後一张 08/09 20:09
9F:→ john790710: 接QTimer的timeout() signal来更新 08/09 20:10