Qt Windows全屏下自定义右键菜单无响应(暗坑)

全屏菜单有问题

此情况我是发生在窗口中包含有OpenGL的QOpenGLWidget。在全屏模式下,自定义右键菜单会出现无效的情况(没有弹出)。

检索到 Qt官方的 Windows issues

按其方法尝试多次,都是没效果,最终......百般搜索、百般尝试、都快要放弃这种方法准备自己重写resize事件的时候- -!

最终...将其置于包含QOpenGLWidget的父部件(parent widget)里一切都那么“随心所欲”了

将其方法详细描述:

1、在父部件的类中添加

#include <QtPlatformHeaders/QWindowsWindowFunctions>

2、父部件的构造函数中

winId(); // 分配窗口句柄 若无此句,会在 qscopedpointer.h的 T *operator->() const noexcept  { return d; } 引发异常
QWindowsWindowFunctions::setHasBorderInFullScreen(windowHandle(), true);

3、然后编译运行吧

很简单,但是是针对会用的或有相应经验的...

猜你喜欢

转载自blog.csdn.net/y474641474/article/details/108580283