查看完整版本: [-- qt5 设置了TranslucentBackground和FramelessWindowHint ,用QVideoWidget 播放视频有声音却没显示 --]

QTCN开发网 -> 《Qt高级编程》专栏 -> qt5 设置了TranslucentBackground和FramelessWindowHint ,用QVideoWidget 播放视频有声音却没显示 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

liyingzai 2015-11-26 15:29

qt5 设置了TranslucentBackground和FramelessWindowHint ,用QVideoWidget 播放视频有声音却没显示

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    resize(400,300);

    setWindowFlags(Qt::Window |Qt::FramelessWindowHint);
    setAttribute(Qt::WA_TranslucentBackground,true);

    player=new QMediaPlayer;
    videoWidget=new QVideoWidget(this);
    videoWidget->setGeometry(this->rect());
    QString  MP4="H:/project/black/black/MP4/Tell_Your_World.mp4";

    player->setMedia(QUrl::fromLocalFile(MP4));
    player->setVideoOutput(videoWidget);
    player->play();
}
qt版本是qt5.3.0 系统是win7 X64 开发软件是QTcreate 设置了TranslucentBackground和FramelessWindowHint ,用QVideoWidget 播放视频有声音却没显示,随便屏蔽一句都有视频显示。

方法1:用其他窗体透明方式,但是除了TranslucentBackground外,setstylesheet、qpalette方式设置alpha都是全黑,求高手指教!!
方法2:按官网的提示修改,官网有类似的问题,网址是http://qt-project.org/forums/viewthread/42867,但是试过用继承qvideowidget重写paintevent都无法解决。

有高手遇过同样问题么?求具体解决方法!!!

zhushentian 2018-09-07 11:27
我之前也遇到这个问题,参考下 https://blog.csdn.net/zhushentian/article/details/81486837
里面提到了官方的答复
https://wiki.qt.io/Technical_FAQ#OpenGL_and_translucent_background_do_not_work_together_due_to_a_limitation
虽然是OpenGL的,但是我觉得原因应该是一样的。


查看完整版本: [-- qt5 设置了TranslucentBackground和FramelessWindowHint ,用QVideoWidget 播放视频有声音却没显示 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled