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(); }
结果:丑陋但是实现