【Qt学习】 列表更新显示

目录

一:效果展示

二:具体实现步骤


一:效果展示

点击左侧按钮,列表更新显示 

点击左侧按钮,列表更新显示  

点击左侧按钮,列表更新显示  

点击左侧按钮,列表更新显示  

二:具体实现步骤

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());
    }
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenruhan_QAQ_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值