Qt实现视屏播放器(前篇)-布局篇

其实也是忙里偷闲,做一个可以播放视频的播放器,额,说实话,其实功能强大的播放器太多了,主要是偶然来的兴趣,于是就试了一下!

本篇文章只讨论播放器的布局问题,以及嵌套问题等,暂时不提供播放视频的功能,实际上这是一个代码编程布局模式,为何这样说呢?因为只需要放置相应的控件就行,其具体的位置以及排列对其等,均通过代码的方式进行纠正!

首先自然是外部的框架,一个总的容器,这里采用QWidget实现,实际上每次建立工程的时候,这个类是一个基类,因此,在你使用它的时候,都不需要包含一个头文件

#include <QWidght>

直接在头文件里定义后,在解析函数里面初始化就行,这里的QWidget作为一个容器,自然是需要内容的,而具体装什么,则是一种嵌套的感觉!

控件面板拖入四个按键和一个滑动条控件,命名和设定完毕后就不需要自己手动布局了,本次设计交由代码实现布局,这也是本篇文章的核心和讨论

this->setCentralWidget(widget);

面板内部创建一个容器,容器内部的具体布局有其自身的属性,有点CSS的味道,但是却又不尽相同

QBoxLayout *ctlLayout = new QHBoxLayout;

这里有一个布局类,该类提供基本的布局属性,额,不止这一个当然,按需选择,需要啥用啥,这里既需要水平的,也需要竖直的

QBoxLayout *mainLayout = new QVBoxLayout;

嗯,貌似也有点容器的感觉,额,当然这里属于我的个人理解,该塞什么就塞进去就行,明白使用方式就行,具体的原理需要熟练之后再去深究!

ctlLayout->addWidget(ui->open);
ctlLayout->addWidget(ui->play);
ctlLayout->addWidget(ui->stop);
ctlLayout->addWidget(ui->max);

嵌套的体现不光是小的控件,也包括大的容器,创建容器,并可以包含容器,更进一步还可以配置容器


mainLayout->addWidget(videoWidget);
mainLayout->addWidget(ui->horizontalSlider);
mainLayout->addLayout(ctlLayout);

widget->setLayout(mainLayout);

额外说明一下,上面的不是同一个布局指针量,一个是水平,一个是竖直,尽管看起来很像,实际上还是各司其职的

注意,上面的videoWidget,这是一个视屏播放相关控件,可能根据文章最前面的看不出来什么,但是根据竖直布局设定,在进度条的上端,还是有一个大的面积未使用,实际上,这里就是给播放视频预留的位置

QT += multimedia multimediawidgets

这个属性的头文件还不能直接加入,毕竟,有一点小的操作技巧,需要上面的.pro文件头部引入相关量

#include <QVideoWidget>
#include <QBoxLayout>

以上的工作量即播放器的前期工作量,不是很大,但也是第一次接触,网上搜索加上自己完善修改,重组实现的,下面的就是引入视频流进入播放控件(有接口的),设定一些按钮的属性功能和视频的播放关联等,这个将在下一篇博文中进行叙述!

嗯,纯代码式的布局让我回想起来曾经写网页的时光,心累,当时都是自己设计界面,一眼望去都是代码,哪有啥界面式编程😭!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注


皖ICP备2021003932号
召唤伊斯特瓦尔