Qt优秀开源项目之二:Qt-Advanced-Docking-System

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

Qt优秀开源项目之二:Qt-Advanced-Docking-System_第1张图片
目前支持Qt5和Qt6,我在最近Qt5项目中试用了一把,使用方法:
将Qt-Advanced-Docking-System编译成库后引入工程,pro文件:

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

效果如下:


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

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

int main(int argc, char *argv[])
{
    QApplication::setAttribute(Qt::AA_ShareOpenGLContexts,true);

    QApplication a(argc, argv);
    .............................................

    QWidget w;

   ..............................................

    return w.exe();
}

解决方法来自:https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/issues/397
 

原文链接:https://blog.csdn.net/caoshangpa/article/details/53128259

你可能感兴趣的:(Qt优秀开源项目,Qt,QDockWidget,QOpenGLWidget)