欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

QWidget的Native化及解决

程序员文章站 2023-03-31 11:59:54
qwidget的native化及解决 widget变成native窗口可能引起的问题 在无边框可拖动的主界面标题栏鼠标事件被别的native窗口接收,无法响应鼠标事件 qlabel等基础布局都变成拥...
qwidget的native化及解决

widget变成native窗口可能引起的问题

在无边框可拖动的主界面标题栏鼠标事件被别的native窗口接收,无法响应鼠标事件

qlabel等基础布局都变成拥有句柄的window,在nativeeventfilter过滤事件时候需要考虑这些基础部件

如何防止子部件native化呢?

qapplication::setattribute(qt::aa_dontcreatenativewidgetsiblings);

qapplication::setattribute(qt::aa_nativewindows,false); //qt::aa_nativewindows受环境变量 qt_use_native_windows控制,有可能环境变量被别的软件修改,所以也需要设置下

在有widget调用winid的之前widget->setattribute(qt::wa_dontcreatenativeancestors);