QDockWidget 透明问题记录--bug解决篇上篇文章提到
待解决BUG:
当QDockWidget使用自定义头时,存在崩溃,具体描述如下:当我们将窗户合并后拖拽出来,如下图
同时双击 title 将两个QDockWidget 都浮动出来 同时拖动 QDockWidget 会出现一个黑色窗口,
解决:
思路:
当我们将QDockWidget设置float 同时合并/或者GroupedDragging模式下合并在拖出来此时QDockWidget的父窗口为变为QDockWidgetGroupWindow窗口类,同时QDockWidgetGroupWindow内有有一个QTabBar对所有的QDockWidget管理,遍历QDockWidgetGroupWindow下的QTabBar判断是否维护了多个QDockWidget,如果只维护了一个就拦截accept,否则放行事件ignore();
本想用tabifiedDockWidgets来判断,但是QDockWidget 在浮动后是不归属于QMainWindow的所有调用方法无效。