我有一个用Qt编写的UI,它广泛使用了dock小部件,主要是为了让最终用户可以自定义哪些Dock可用,以及它们的排列方式。
我们最近升级到Qt 5.6.1,并且无法再在Ubuntu上重新安排Dock小部件,尽管它们仍可在Windows和其他操作系统上运行。当你试图移动码头时,橡皮筋仍然像往常一样显示新的位置,但是当掉落时,码头只会快速回到它开始的任何位置,这总是以某种方式标记。
经过几个小时的搜索,我认为这个问题与QTBUG-54185有关,我想知道在等待Qt 5.6.2发布时是否有办法解决这个问题。解决它。
答案 0 :(得分:0)
该错误与禁用AnimatedDocks
属性有关。 QDockWidget
重新排列仍可正常工作,即使存在错误,也可用于动画的停靠小部件。
问题是在代码中,主窗口是手动设置停靠栏选项
mainWindow->setDockOptions(AllowTabbedDocks);
由于DockOptions
是OR,所以这里发生的是AnimatedDocks
属性,默认情况下已启用,无意中被禁用。我的解决方案是删除违规行,因为默认选项是AllowedTabbedDocks|AnimatedDocks
,这实际上是我一直想要的。