这段时间使用QT开发项目,遇到了一些问题,经过几天奋战,终于搞定,故写下解决思路。
1、首先是关于透明窗口在视频前的闪烁问题
刚开始,我是使用布局管理,在一Dialog中添加四个Widget,但是将Dialog设为透明后,会随着视频帧的不断刷新而重绘。于是,尝试使Widget构造时没有父对象,单独视为一个窗口,在设为透明,成功解决闪烁问题。
2、关于键盘模拟鼠标问题
在网上找了些方法,但主要是使用eventFilter,在其中添加如下代码:
case Qt::Key_W:
pos.setY(pos.y()-10);
QCursor::setPos(pos);
break;
case Qt::Key_L:
QMouseEvent *mEvnPress;
QMouseEvent *mEvnRelease;
mEvnPress = new QMouseEvent(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
mEvnRelease = new QMouseEvent(QEvent::MouseButtonRelease, pos, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
QCoreApplication::postEvent(obj,mEvnPress);
QCoreApplication::postEvent(obj,mEvnRelease);
break;
不过,对于我这不是很好的解决办法,对每个Dialog都得添加以上代码,还得根据