无法在Ubuntu 14.04上重新排列`QDockWidget`

时间:2016-08-02 15:00:15

标签: c++ qt ubuntu qdockwidget

我有一个用Qt编写的UI,它广泛使用了dock小部件,主要是为了让最终用户可以自定义哪些Dock可用,以及它们的排列方式。

我们最近升级到Qt 5.6.1,并且无法再在Ubuntu上重新安排Dock小部件,尽管它们仍可在Windows和其他操作系统上运行。当你试图移动码头时,橡皮筋仍然像往常一样显示新的位置,但是当掉落时,码头只会快速回到它开始的任何位置,这总是以某种方式标记。

经过几个小时的搜索,我认为这个问题与QTBUG-54185有关,我想知道在等待Qt 5.6.2发布时是否有办法解决这个问题。解决它。

1 个答案:

答案 0 :(得分:0)

该错误与禁用AnimatedDocks属性有关。 QDockWidget重新排列仍可正常工作,即使存在错误,也可用于动画的停靠小部件。

问题是在代码中,主窗口是手动设置停靠栏选项

mainWindow->setDockOptions(AllowTabbedDocks);

由于DockOptions是OR,所以这里发生的是AnimatedDocks属性,默认情况下已启用,无意中被禁用。我的解决方案是删除违规行,因为默认选项是AllowedTabbedDocks|AnimatedDocks,这实际上是我一直想要的。