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都无法解决。
有高手遇过同样问题么?求具体解决方法!!!
8 个解决方案
#1
要不你用qml去弄播放,然后嵌进去widget。
#2
求例子,本人新手,不了解QML
#3
你打开QT creator, 在欢迎examples界面,输入video搜索,打开一个WidgetVideo的例子,或者打开Player的例子,里面有详细的用法
#4
QVideoWidget貌似不是使用QBackingStore进行Raster绘图的,所以使用普通QWidget的方法会有问题,我是自己实现了QAbstractVideoSurface接口拿到像素数据,然后上传YUV三份纹理用GLSL画到QWindow里的
#5
setWindowFlags(Qt::Window |Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground,true);
在 new Ui::MainWindow之前调用。
setAttribute(Qt::WA_TranslucentBackground,true);
在 new Ui::MainWindow之前调用。
#6
同遇相同问题,同求解决方案!窗口透明问题烦死了!
#7
我也遇到相同的问题 楼主求帮助
#8
楼主问题怎么解决的呢
#1
要不你用qml去弄播放,然后嵌进去widget。
#2
求例子,本人新手,不了解QML
#3
你打开QT creator, 在欢迎examples界面,输入video搜索,打开一个WidgetVideo的例子,或者打开Player的例子,里面有详细的用法
#4
QVideoWidget貌似不是使用QBackingStore进行Raster绘图的,所以使用普通QWidget的方法会有问题,我是自己实现了QAbstractVideoSurface接口拿到像素数据,然后上传YUV三份纹理用GLSL画到QWindow里的
#5
setWindowFlags(Qt::Window |Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground,true);
在 new Ui::MainWindow之前调用。
setAttribute(Qt::WA_TranslucentBackground,true);
在 new Ui::MainWindow之前调用。
#6
同遇相同问题,同求解决方案!窗口透明问题烦死了!
#7
我也遇到相同的问题 楼主求帮助
#8
楼主问题怎么解决的呢