qt 右键弹出menu的时候屏幕会闪一下
时间: 2023-07-12 18:04:29 浏览: 220
Qt实现鼠标右击弹出菜单
5星 · 资源好评率100%
这种情况可能是因为弹出菜单的时候涉及到了窗口的重绘,导致屏幕闪烁。你可以尝试通过以下几种方式解决:
1. 直接在弹出菜单的函数中设置 QWidget::setAttribute(Qt::WA_OpaquePaintEvent) ,禁止窗口在绘制时进行透明度混合。
2. 在弹出菜单之前,暂时将 QWidget::setAttribute(Qt::WA_NoSystemBackground) 设置为 true ,这样在弹出菜单时就不会出现背景透明的问题。
3. 将弹出菜单的窗口属性设置为Qt::Popup,这样就可以避免涉及到窗口的重绘。可以通过以下代码实现:
```
QMenu* menu = new QMenu(this);
menu->setWindowFlags(Qt::Popup);
menu->addAction("Action1");
menu->addAction("Action2");
menu->exec(QCursor::pos());
```
希望这些方法可以帮助你解决问题。
阅读全文