目录
一:效果展示
点击左侧按钮,列表更新显示
点击左侧按钮,列表更新显示
点击左侧按钮,列表更新显示
点击左侧按钮,列表更新显示
二:具体实现步骤
1.最初进入视频播放器时候的显示
image目录下的所有图片
//最初进入视频播放器时候的显示 - image目录下的所有图片
//获取视频图片路径 - 从当前目录下往下找
QString videopath = QDir::currentPath()+"/image";
qDebug()<<videopath;
QDir dir(videopath);//确定路径 从此dir路径下往下找
QStringList moviename;//存放所有.png图片
moviename << "*.png"; //查找所有.png图片
//entryList--类似打开目录文件夹的操作 文件 可读 排序按照名字排序
QStringList files = dir.entryList(moviename,QDir::Files|QDir::Readable,QDir::Name);
qDebug()<<files; //查找.png图片名
for(int i=0;i<files.size();i++)
{
//显示所有的.png图片及名称
//QListWidgetItem类 就是列表项类
QListWidgetItem *newitem = new QListWidgetItem( //自适应列表项中的图片大小
QIcon(QPixmap(videopath+"/"+files.at(i)).scaled(QSize(100,100))),files.at(i));
//设置列表项中的图片大小
videowinlist->setIconSize(QSize(100,100));
//设置列表项整体的尺寸
newitem->setSizeHint(QSize(250,190));
//设置列表项中的文字对齐方式:水平居中
newitem->setTextAlignment(Qt::AlignHCenter);
//在列表框中添加列表项
videowinlist->addItem(newitem);
}
2.在点击按钮后先进行原先视频列表中列表项元素的清空(clear)
再根据分文件管理下,对不同目录下的图片实现列表化的显示(如:
QString videopath = QDir::currentPath()+"/image/推荐";
QString videopath = QDir::currentPath()+"/image/电视剧";
QString videopath = QDir::currentPath()+"/image/电影";
QString videopath = QDir::currentPath()+"/image/综艺";
)
完整源码分享
//视频播放器界面中左边窗口的不同的按钮实现不同的响应
//更新视频列表 - 分文件管理
void IndexWin::goNewwinSlot()
{
//获取点击按钮的文本信息 - sender -对QPushButton对象进行操作
QPushButton *btn = (QPushButton *)sender();
//按钮对象文本信息的获取和保存
QString btnName = btn->text();
//qDebug()<<btn->text();
//根据获取到的文本信息进行判断 - 根据文本信息进行区分不同的按钮 - 不同的按钮做出不同的响应
//更新列表 分文件管理
if(btnName == "推荐")
{
//先清空之前列表 再进行更新
videowinlist->clear();
//更新推荐列表
//获取推荐中图片的路径 - 从当前目录下往下找
QString videopath = QDir::currentPath()+"/image/推荐";
qDebug()<<videopath;
QDir dir(videopath);//确定路径 从此dir路径下往下找
QStringList moviename;//存放所有.png图片
moviename << "*.png"; //查找所有.png图片
//entryList--类似打开目录文件夹的操作 文件 可读 排序按照名字排序
QStringList files = dir.entryList(moviename,QDir::Files|QDir::Readable,QDir::Name);
qDebug()<<files; //查找.png图片名
for(int i=0;i<files.size();i++)
{
//显示所有的.png图片及名称
//QListWidgetItem类 就是列表项类
QListWidgetItem *newitem = new QListWidgetItem(
QIcon(QPixmap(videopath+"/"+files.at(i)).scaled(QSize(100,100))),files.at(i));
//设置列表项中的图片大小
videowinlist->setIconSize(QSize(100,100));
//设置列表项的尺寸
newitem->setSizeHint(QSize(250,190));
//设置文字对齐方式:水平居中
newitem->setTextAlignment(Qt::AlignHCenter);
//在列表框中添加列表项
videowinlist->addItem(newitem);
}
// 弹窗 对话框悬空在上面-NULL
QMessageBox::information(NULL,"推荐",btn->text());
}
if(btnName == "电视剧")
{
videowinlist->clear();
//更新电视剧列表
//获取电视剧图片路径 - 从当前目录下往下找
QString videopath = QDir::currentPath()+"/image/电视剧";
qDebug()<<videopath;
QDir dir(videopath);//确定路径 从此dir路径下往下找
QStringList moviename;//存放所有.png图片
moviename << "*.png"; //查找所有.png图片
//entryList--类似打开目录文件夹的操作 文件 可读 排序按照名字排序
QStringList files = dir.entryList(moviename,QDir::Files|QDir::Readable,QDir::Name);
qDebug()<<files; //查找.png图片名
for(int i=0;i<files.size();i++)
{
//显示所有的.png图片及名称
//QListWidgetItem类 就是列表项类
QListWidgetItem *newitem = new QListWidgetItem(
QIcon(QPixmap(videopath+"/"+files.at(i)).scaled(QSize(100,100))),files.at(i));
//设置列表项中的图片大小
videowinlist->setIconSize(QSize(100,100));
//设置列表项的尺寸
newitem->setSizeHint(QSize(250,190));
//设置文字对齐方式:水平居中
newitem->setTextAlignment(Qt::AlignHCenter);
//在列表框中添加列表项
videowinlist->addItem(newitem);
}
QMessageBox::information(NULL,"电视剧",btn->text());
}
if(btnName == "电影")
{
videowinlist->clear();
//更新电影列表
//获取电影图片路径 - 从当前目录下往下找
QString videopath = QDir::currentPath()+"/image/电影";
qDebug()<<videopath;
QDir dir(videopath);//确定路径 从此dir路径下往下找
QStringList moviename;//存放所有.png图片
moviename << "*.png"; //查找所有.png图片
//entryList--类似打开目录文件夹的操作 文件 可读 排序按照名字排序
QStringList files = dir.entryList(moviename,QDir::Files|QDir::Readable,QDir::Name);
qDebug()<<files; //查找.png图片名
for(int i=0;i<files.size();i++)
{
//显示所有的.png图片及名称
//QListWidgetItem类 就是列表项类
QListWidgetItem *newitem = new QListWidgetItem(
QIcon(QPixmap(videopath+"/"+files.at(i)).scaled(QSize(100,100))),files.at(i));
//设置列表项中的图片大小
videowinlist->setIconSize(QSize(100,100));
//设置列表项的尺寸
newitem->setSizeHint(QSize(250,190));
//设置文字对齐方式:水平居中
newitem->setTextAlignment(Qt::AlignHCenter);
//在列表框中添加列表项
videowinlist->addItem(newitem);
}
QMessageBox::information(NULL,"电影",btn->text());
}
if(btnName == "综艺")
{
videowinlist->clear();
//更新综艺列表
//获取综艺图片路径 - 从当前目录下往下找
QString videopath = QDir::currentPath()+"/image/综艺";
qDebug()<<videopath;
QDir dir(videopath);//确定路径 从此dir路径下往下找
QStringList moviename;//存放所有.png图片
moviename << "*.png"; //查找所有.png图片
//entryList--类似打开目录文件夹的操作 文件 可读 排序按照名字排序
QStringList files = dir.entryList(moviename,QDir::Files|QDir::Readable,QDir::Name);
qDebug()<<files; //查找.png图片名
for(int i=0;i<files.size();i++)
{
//显示所有的.png图片及名称
//QListWidgetItem类 就是列表项类
QListWidgetItem *newitem = new QListWidgetItem(
QIcon(QPixmap(videopath+"/"+files.at(i)).scaled(QSize(100,100))),files.at(i));
//设置列表项中的图片大小
videowinlist->setIconSize(QSize(100,100));
//设置列表项的尺寸
newitem->setSizeHint(QSize(250,190));
//设置文字对齐方式:水平居中
newitem->setTextAlignment(Qt::AlignHCenter);
//在列表框中添加列表项
videowinlist->addItem(newitem);
}
QMessageBox::critical(NULL,"综艺",btn->text());
}
if(btnName == "儿童")
{
QMessageBox::question(NULL,"儿童",btn->text());
}
if(btnName == "动漫")
{
QMessageBox::warning(NULL,"动漫",btn->text());
}
if(btnName == "游戏")
{
QMessageBox::about(NULL,"游戏",btn->text());
}
if(btnName == "纪录片")
{
QMessageBox::information(NULL,"纪录片",btn->text());
}
if(btnName == "体育")
{
QMessageBox::information(NULL,"体育",btn->text());
}
}