qt Qmenu exec(QCursor::pos())会导致画面闪一下
时间: 2023-11-28 21:49:53 浏览: 54
Qt窗口闪烁
5星 · 资源好评率100%
这种闪烁通常是由于QMenu的显示和隐藏过程中涉及到了一些重绘操作,导致画面闪烁。可以尝试使用QMenu::popup函数代替exec函数,它可以让QMenu显示在指定的位置。示例代码如下:
```
QMenu menu;
menu.addAction("Action 1");
menu.addAction("Action 2");
menu.addAction("Action 3");
menu.popup(QCursor::pos());
```
另外,如果你的应用程序还有其他的UI操作,建议在QMenu显示之前先调用QWidget::repaint()函数强制进行一次重绘,这样可以减少闪烁的现象。
阅读全文