无法使用 QFileSystemModel 解析不同音频/视频文件的系统目录
Failing to Parse System Directories using QFileSystemModel for different Audio/Video Files
我是Qt的新手,从过去几天开始研究它。我遇到过需要解析/遍历系统目录并搜索.mp3、.mpg等文件的情况。
在我的 .ui 中,我有 2 个树视图,一个向右,另一个向左。左侧显示系统目录,选择驱动器时,右侧树视图显示.mp3、.mpg等文件。
这是我的CPP课程:
//Gets called on App startup
void PanasonicViewer::onCamStartup()
{
m_SystemModel = new QFileSystemModel(this);
m_SystemListViewModel = new QFileSystemModel(this);
m_SystemModel->setRootPath(QDir::homePath());
ui->DriveView->setModel(m_SystemModel); //Left side TreeView
ui->DriveListView->setModel(m_SystemListViewModel); //Right Side TreeView
// regard less how many columns you can do this using for:
for(int nCount = 1; nCount < m_SystemModel->columnCount(); nCount++)
ui->DriveView->hideColumn(nCount);
}
void PanasonicViewer::on_DriveView_clicked(const QModelIndex &index)
{
QStringList sDriveFilters;
QString sPath = m_SystemModel->fileInfo(index).absoluteFilePath();
ui->DriveListView->setRootIndex(m_SystemListViewModel->setRootPath(sPath));
m_SystemModel->setRootPath(QDir::homePath());
m_SystemModel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs );
m_SystemListViewModel->setFilter( QDir::Files | QDir::NoDotAndDotDot );
sDriveFilters << "*.aac" << "*.wmv" << "*.avi" << "*.mpeg" << "*.mov" << "*.3gp" << "*.flv" << "*.mp3" ;
m_SystemListViewModel->setNameFilters(sDriveFilters);
m_SystemListViewModel->setNameFilterDisables(false);
}
Here is my .h file:
QFileSystemModel *m_SystemModel;
QFileSystemModel *m_SystemListViewModel;
当我运行我的应用程序时,它只显示云端硬盘中存在的那些音频/视频文件。我的意思是它不会解析驱动器中存在音频/视频文件的文件夹。它只显示驱动器中的文件,而不是子目录中的文件。我怎样才能实现它?:)
"计算机按照你说的做,但不是你想要的"
如果你想获取驱动器内存在的所有文件 - 你必须递归地浏览所有目录。
这是类似和回答的问题:SO问题。
通过其中一个答案,在Qt中你可以使用这种方法:
#include <qapplication.h>
#include <qdir.h>
#include <iostream>
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QDir currentDir = QDir::current();
currentDir.setFilter( QDir::Dirs );
QStringList entries = currentDir.entryList();
for( QStringList::ConstIterator entry=entries.begin(); entry!=entries.end(); ++entry)
{
std::cout << *entry << std::endl;
}
return 0;
}
相关文章:
- 媒体基础将音频流添加到视频文件
- 如何避免在 c++ 中使用 libssh scp 命令压缩从远程 ssh 下载的图像、音频和视频文件?
- 使用FFMPEG编写多线程视频和音频数据包
- 媒体基金会的音频/视频捕获到mpeg4filesink上产生不正确的持续时间
- 如何在不使用QMediaPlayer的情况下获取Qt中音频和视频文件的持续时间
- 无法使用 QFileSystemModel 解析不同音频/视频文件的系统目录
- 播放视频时如何更改音频斑块
- 将音频和视频文件合并为一个 [C++]
- 从 flv 视频(或任何其他视频)中提取音频的算法.怎么做
- QMultimedia - 支持哪些视频/音频编码和容器
- 独立处理音频和视频
- 松下相机流媒体MJPEG视频与G.726音频
- 解码音频和视频并处理这两个流——ffmpeg、sdl、opencv
- Live555可在一个RTSP流中流式传输实时视频和音频
- 用FFmpeg从音频和视频文件中穆兴
- 在控制台应用程序中播放视频音频
- 可视化音频波形从视频本地文件使用Qmedia播放器
- 使用 OpenAL 和 C++ 同步音频和视频播放
- 计算PTS和DTS正确同步音频和视频
- 如何使用libvlc API或FFmpeg API提取音频/视频剪辑