1.C与C++的强制类型转换
2.自定义控件
要求:制作一个登录页面
1.使用控件拖拽一个页面出来
使用水平布局,垂直布局,网格布局
2.建立自定义控件
1.为项目添加自定义的类
自己写一个控件
2.
(1)创建一个Group Box容器
(2)在容器中,右键--》提升为
(3)自定义类名称--》添加
(4)点击提升
结果:
二。制作简易播放器
1.创建工程,控件布局
0.布局
参考遥控与电视
播放页面:Widget容器+label标签
声音调控:Widget容器+滚动条
四个按钮:Widget容器+按钮
属性与函数声明:
1.添加多媒体配置
QT += core gui multimedia multimediawidgets
2.各个按钮转到槽
3.创建私有属性
QMediaPlayer* pPlayer; //播放器 QVideoWidget* pVideoWidget; //播放窗口 QMediaPlaylist* pPlayerList; //播放队列 QString m_fileName; //音视频文件名 QMediaPlayer::State m_playerState; //播放状态
实现代码:
1.new出播放器与播放列表,播放窗口
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //创建播放器,播放列表,播放窗口 pPlayer=new QMediaPlayer; pPlayerList=new QMediaPlaylist; pVideoWidget=new QVideoWidget(this); //播放器 指定 播放队列(播放内容) pPlayer->setPlaylist(pPlayerList); //播放器 指定 播放窗口 pPlayer->setVideoOutput(pVideoWidget); }
2.视频声音调整
void MainWindow::on_horizontalSlider_valueChanged(int value) { pPlayer->setVolume(value); }
3.打开视频
//写on_ptnOpen_clicked()中的addToPlayerList函数 void MainWindow::addToPlayerList(const QStringList& fileNames){ foreach(QString const& arg,fileNames){ QUrl url(arg);//类型转换 pPlayerList->addMedia(url);//添加到播放列表中 } } void MainWindow::on_ptnOpen_clicked() { pPlayerList->clear();//清空播放队列 //QStringList是为了存放一系列数据,Qstring不行 QStringList fileNames=QFileDialog::getOpenFileNames(this,"找到音视频文件", "C:/Users/Administrator/Desktop", "allfiles(*.*);;" "MP3(*.mp3);;" "MP4(*.mp4);;" "AVI(*.avi)"); addToPlayerList(fileNames); pVideoWidget->resize(ui->label->size()); }
4.视频的播放暂停与停止
void MainWindow::on_ptnPlay_clicked() { m_playerState=QMediaPlayer::PlayingState; pPlayer->play(); pVideoWidget->resize(ui->label->size()); } void MainWindow::on_ptnPause_clicked() { m_playerState = QMediaPlayer::PausedState; pPlayer->pause(); } void MainWindow::on_pushButton_4_clicked() { m_playerState = QMediaPlayer::StoppedState; pPlayer->stop(); }
结果:丑陋但是实现