博主使用的編譯器是Qt直接進(jìn)行ui界面的設(shè)計。
先進(jìn)行一下效果展示
20230328
這里使用了兩個QListWidget,左邊的用做顯示文件信息,右邊的做顯示文件夾下的圖片,這里的圖片是保存的拍攝視頻的第一幀,通過雙擊顯示圖片,點機打開視頻可以查看視頻。
在構(gòu)造中實現(xiàn)左邊QListWidget遍歷文件內(nèi)容顯示文件夾,將所有的文件夾信息獲取打印在窗口中
//獲取文件夾下所有文件夾并顯示
QStringList num;
QString dirPath=("./shoot");
QDir dir(dirPath);
dirPath = dir.fromNativeSeparators(dirPath);// "\\"轉(zhuǎn)為"/"
if (!dir.exists()) num = QStringList("");
dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
dir.setSorting(QDir::Name);
num = dir.entryList();
ui->listWidget_2->setViewMode(QListView::IconMode);
ui->listWidget_2->addItems(num);
//設(shè)置自動適應(yīng)布局調(diào)整(Adjust適應(yīng),F(xiàn)ixed不適應(yīng)),默認(rèn)不適應(yīng)
ui->listWidget_2->setResizeMode(QListWidget::Adjust);
//設(shè)置不能移動
ui->listWidget_2->setMovement(QListWidget::Static);
//豎向滾動條
ui->listWidget_2->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
訪問的文件夾下的內(nèi)容
實現(xiàn)的效果:
顯示文件夾下的圖片這個功能,這里是增加了一個按鈕作為響應(yīng)的,通過信號和槽函數(shù)使另一個QListWidget顯示圖片,當(dāng)然也可以直接使用QListWidget里是函數(shù)直接做跳轉(zhuǎn)。
這里的按鈕函數(shù)邏輯是:清空窗口,獲取選中的成員信息,訪問該成員文件夾下內(nèi)容,遍歷所有的圖片文件,保存到容器中,在顯示容器中內(nèi)容。
void playback::on_pushButton_3_clicked()
{
//每次點擊將listwidget清空
int counter =ui->listWidget->count();
for(int index=0;index<counter;index++)
{
QListWidgetItem *item = ui->listWidget->takeItem(0);
delete item;
}
QString arr=ui->listWidget_2->currentItem()->text();
QDir * imagePath=new QDir("./shoot/"+arr);
QStringList filter;
filter << "*.jpg"<< "*.png" ;
QList<QFileInfo> *fileInfo=new QList<QFileInfo>(imagePath->entryInfoList(filter));
int imageSum = fileInfo->count();
QList<QString> fileNames;
fileNames.clear();
if(imageSum == 0)
{
return;
}
for(int i=0;i<imageSum;i++)
{
fileNames.append(fileInfo->at(i).filePath());
}
for(auto tmp : fileNames)
{
ui->listWidget->addItem(new QListWidgetItem(QIcon(tmp),tmp));
}
}
文件夾下內(nèi)容:
?其中avi文件為視頻文件,圖片是保存的視頻第一幀,窗口中也顯示的是第一幀圖片,通過圖片獲取視頻打開播放。
顯示效果文件夾下的圖片文件只有兩個因此只顯示了兩個成員:
?在這個窗口通過雙擊成員可以查看圖片,效果:
?這里就是用QListWidget中的函數(shù)響應(yīng):(窗口是我自己定義的類)
void playback::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{
QString arr=ui->listWidget->currentItem()->text();
String str=arr.toStdString();
a.ps(str);
this->hide();
a.show();
}
?上面的打開視頻按鈕就可以查看視頻了,并且可以進(jìn)行快進(jìn)慢放等常規(guī)功能。
文章來源:http://www.zghlxwxcb.cn/news/detail-703955.html
?本期文章就到這了下期見了?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-703955.html
到了這里,關(guān)于QListWidget顯示文件夾內(nèi)容,選擇文件并顯示文件夾下圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!