Qt 优秀开源项目 Qt-Advanced-Docking-System

发布时间 2023-03-23 15:32:18作者: 一杯清酒邀明月

这个项目的原作者是mfreiholz,但是已经6年没更新,githubuser0xFFFF将该项目fork之后,一直维护到现在,这应该算是开源界的接力了。
如果你还在项目Visual studio的酷炫docking效果,那么不妨试试这款加强版的QDockWidget。

目前支持Qt5和Qt6,我在最近Qt5项目中试用了一把,使用方法:
将Qt-Advanced-Docking-System编译成库后引入工程,pro文件:

1 INCLUDEPATH += D:/Qt-Advanced-Docking-System-master/src
2 LIBS += -LD:/Qt-Advanced-Docking-System-master/lib -lqtadvanceddocking

效果如下:

 这里有一点要注意,如果dock widget中用到了QOpenGLWidget,在拖动该dock widget的标题栏时,QOpenGLWidget会窗口渲染成黑色,给人的感觉就是黑屏了,如下所示

 解决的方法是在main函数中添加QApplication::setAttribute(Qt::AA_ShareOpenGLContexts,true);

 1 int main(int argc, char *argv[])
 2 {
 3     QApplication::setAttribute(Qt::AA_ShareOpenGLContexts,true);
 4  
 5     QApplication a(argc, argv);
 6     .............................................
 7  
 8     QWidget w;
 9  
10    ..............................................
11  
12     return w.exe();
13 }