希望实现的结果: 一个可以拖动,可以缩放的窗口,标题栏自定义,而不是用windows 自带标题栏(大家都觉得系统的标题栏很丑,但我自己觉得也还好),大华的摄像头SDK启动摄像头播放时,通过 回调函数获取视频数据,通过大华的 playsdk 丢入该窗口进行播放。
简单记录,待详细补充
方案1:
在隐藏系统标题栏之前,窗口是可以拖放和改变大小的;
通过 setWindowFlags( Qt::CustomizeWindowHint); 隐藏系统标题栏,隐藏后窗口保留了拖放和改变大小的功能。看起来很完美,但是仔细看发现在窗口顶部留下了一条白边儿,该白边儿不知道如何修改样式,不知道如何隐藏。
因此放弃了该方案。
方案2:
继承 QDIalog 或 QWidget 自定义了一个窗口类,
在该窗口类构造函数中 执行 setWindowFlags(Qt::FramelessWindowHint) 隐藏了系统标题栏,隐藏后鼠标拖放和改变大小的功能失效了,因此需要重定义鼠标事件,自己实现。
鼠标拖放功能比较容易实现,改变大小的功能希望实现的效果为 当鼠标经过窗口边缘时,鼠标改变形状,此时按下鼠标左键,然后移动鼠标即可调整窗口大小。
在默认情况下,窗口只有在鼠标按下时才能捕捉鼠标事件,如果要在鼠标不按下时也能触发,则需要 调用
setMouseTracking(true);
调用该接口后,可以模拟原效果失效鼠标拖放窗口和改变窗口大小的功能。
当为主

最低0.47元/天 解锁文章
5116

被折叠的 条评论
为什么被折叠?



