QT开发中文网

Qt中继承QVideoWidget并重写paintEvent()函数,在绘制视频画面之前绘制其他控件

重写QVideoWidget的paintEvent()函数可以在绘制视频画面之前绘制其他控件,具体步骤如下:

  1. 新建一个类,继承自QVideoWidget。

  2. 在该类中重写paintEvent()函数,先调用父类的paintEvent()函数,再在其上绘制其他控件。

  3. 在主窗口中使用该类创建视频播放器,并设置视频画面为全屏显示,以保证其他控件能够正常显示。

代码示例:

#include <QtWidgets>

class VideoWidget : public QVideoWidget
{
public:
    VideoWidget(QWidget *parent = nullptr) : QVideoWidget(parent)
    {
        // 设置背景色
        setStyleSheet("background-color: black;");
    }

protected:
    void paintEvent(QPaintEvent *event) override
    {
        // 调用父类的paintEvent()函数
        QVideoWidget::paintEvent(event);

        QPainter painter(this);
        painter.setPen(Qt::white);

        // 在视频画面上绘制文本
        painter.drawText(rect(), Qt::AlignCenter, "Custom Control");
    }
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 创建视频播放器并设置视频画面为全屏显示
    QMediaPlayer player;
    VideoWidget videoWidget;
    player.setVideoOutput(&videoWidget);
    videoWidget.showFullScreen();

    // 加载视频文件并开始播放
    player.setMedia(QUrl::fromLocalFile("/path/to/video.mp4"));
    player.play();

    return app.exec();
}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=631

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?