【QT】视频轮播、图片轮播、文字切换 您所在的位置:网站首页 播放其他的图片 【QT】视频轮播、图片轮播、文字切换

【QT】视频轮播、图片轮播、文字切换

2024-07-17 22:35| 来源: 网络整理| 查看: 265

目录 功能描述界面设计功能实现效果展示项目源码

功能描述

1.实现图片轮播(添加文件夹中的所有图片,点击某张图片在右边显示,图片不断的更换) 2.视频轮播(添加视频路径,播放完后自动播放下一个) 3.文字切换(手动输入添加文字,添加完成后自动轮播文字)

问题交流请联系-》群名:IT项目交流群 群号:245022761

界面设计

功能实现

1、播放视频

准备mplayer播放器 电脑:https://download.csdn.net/download/qq_40602000/11435405 arm开发板:https://download.csdn.net/download/qq_40602000/11435419 在这里插入图片描述 在window上mplayer操作 mplayer -slave -quiet -wid 窗口id号 视频路径

QString filename = item->text(); QStringList argments;//创建一个列表保存参数 argmentswidth()).arg(ui->mvLb->height()); mprocess.start(cmd);

2、显示图片

//在QLabel上显示图片文件 QPixmap mmp(":/bg.png"); //用资源文件中的图 mmp = mmp.scaled(ui->label->size());//把图片大小设置跟QLabel标签一样 ui->label->setPixmap(mmp);

简单写法

ui->label->setScaledContents(true);//显示图片的全部 ui->label->setPixmap(QPixmap(":/bg.png"));//显示图片

3、定时器

QTimer 定时器类 1.创建定时器类对象 QTimer mtimer; 2.把定时器信号与槽函数关联 connect(&mtimer, &QTimer::timeout, this, &TimerWin::Bt_clicked); 3.启动定时器 mtimer.start(1000); 4.停止定时器 mtimer.stop();

4、输入对话框

QInputDialog dia(this); dia.setWindowTitle("输入框"); dia.setLabelText("请添加文字:"); dia.setInputMode(QInputDialog::TextInput);//可选参数:DoubleInput TextInput if(dia.exec() == QInputDialog::Accepted) { qDebug() listWidget->addItem(dia.textValue());//添加文字 words.append(dia.textValue()); }

5、QT进程

Qt中的进程QProcess 类似于vfork+exec函数族 , 创建一个子进程来执行已编译好的代码 使用Qt中的进程 1.创建QProcess进程对象 QProcess mprocess; 2.启动进程 mprocess.start(要执行的程序) 效果展示

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

项目源码

头文件

#ifndef QPLAYER_H #define QPLAYER_H #include #include #include #include namespace Ui { class QPlayer; } class QPlayer : public QWidget { Q_OBJECT public: explicit QPlayer(QWidget *parent = nullptr); ~QPlayer(); void word_auto(); void pic_auto(); private slots: void on_addBt_clicked(); void on_listWidget_itemDoubleClicked(QListWidgetItem *item); void play_next(); void on_addPicBt_clicked(); void on_listWidget_clicked(const QModelIndex &index); void on_addWordBt_clicked(); void on_autoPlayBt_clicked(); private: Ui::QPlayer *ui; QProcess mProcess; //进程 QStringList moviesFiles; //存放视频路径列表 int count =0 ; int count1 =0; int count2=0; QString Dir;//打开文件的路径 QString tempDir; //照片的绝地路径 QVector photoPath;//存放照片相对路径的容器 QVector words;//存放文字 QTimer mtimer;//文字播放定时器 QTimer mtimer1; //图片播放定时器 }; #endif // QPLAYER_H

主文件

#include "qplayer.h" #include "ui_qplayer.h" #include #include #include QPlayer::QPlayer(QWidget *parent) : QWidget(parent), ui(new Ui::QPlayer) { ui->setupUi(this); //当进程结束后会发生 connect(&mProcess, SIGNAL(finished(int)), this, SLOT(play_next())); //把定时器信号与槽函数关联 connect(&mtimer, &QTimer::timeout, this, &QPlayer::word_auto); connect(&mtimer1, &QTimer::timeout, this, &QPlayer::pic_auto); } QPlayer::~QPlayer() { delete ui; } void QPlayer::on_addBt_clicked() { qDebug()clear(); //通过文件对话框添加视频文件 moviesFiles = QFileDialog::getOpenFileNames(this,"选择视频文件","D:/GZ1927","*.mp4 *.avi"); //把视频路径添加到列表中 ui->listWidget->addItems(moviesFiles); } void QPlayer::on_listWidget_itemDoubleClicked(QListWidgetItem *item) { if(mProcess.state() == QProcess::Running) { //杀死 mProcess.kill(); //等待杀死 mProcess.waitForFinished(); } qDebug()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有