PyQt(Python+Qt)学习随笔:QDockWidget停靠部件的dockWidgetArea和docked属性

dockWidgetArea和docked属性这两个属性在Designer中有设置,dockWidgetArea表示部件的初始停靠位置,取值范围和allowedAreas相同,docked为布尔值,表示是否启用停靠功能。

但dockWidgetArea和docked属性这两个属性QDockWidget都没有,实际上是用于控制调用QMainWindow的addDockWidget方法,当docked为True时,Designer生成的代码就会调用QMainWindow的addDockWidget方法,addDockWidget第一个参数即为Designer属性的dockWidgetArea,当docked为False时,Designer生成的代码就不会调用QMainWindow的addDockWidget方法。

注意当docked为True时:
  • 当allowedAreas设置为不能停靠(NoDockWidgetArea)时,无论dockWidgetArea设置为何值,设置后在Designer中都会自动恢复为上次allowedAreas不为不能停靠(NoDockWidgetArea)时dockWidgetArea设定的值;
  • 当allowedAreas设置为AllDockWidgetAreas所有区域都可以停靠时,如果此时设置dockWidgetArea为NoDockWidgetArea、AllDockWidgetAreas、DockWidgetFeatureMask三个中的任意一个时,Designer会将allowedAreas自动修改为最近设置的LeftDockWidgetArea、RightDockWidgetArea、TopDockWidgetArea、BottomDockWidgetArea中的一个,即allowedAreas不允许设置为NoDockWidgetArea、AllDockWidgetAreas、DockWidgetFeatureMask,强行设置会自动修订到设置前的值。

老猿Python,跟老猿学Python!

原文地址:https://www.cnblogs.com/LaoYuanPython/p/12634955.html