如何使用PyQt5设置enum AllowTabbedDocks



我想为我的PyQt5应用程序创建一个QMainWindow。我想使用AllowTabbedDocks,但为此我需要将AllowTabbedDocks设置为True。我不知道该怎么做。

从Qt文档中,我发现了这两个方法:

class MainWindow(QMainWindow):
    def __init__(self, url):
        super(MainWindow, self).__init__()
        .....
        self.setDockOption()
        self.DockOptions()

QMainWindow类中可用的标志如下:

AllowNestedDocks = 2
AllowTabbedDocks = 4
AnimatedDocks = 1
ForceTabbedDocks = 8
GroupedDragging = 32
VerticalTabs = 16

我的问题是如何使用:

dockOptions()
setDockOption()

QMainWindow类?我的问题可能很奇怪,因为我无法正确理解。

默认情况下,dock选项已经设置了AllowTabbedDocksAnimatedDocks,因此您不需要做任何事情。多个选项可以通过按位操作组合成一个。

您可以使用& (AND)操作符来测试一个选项是否被设置:

print(bool(self.dockOptions() & QMainWindow.AllowTabbedDocks))

要删除一个选项,使用~ (NOT)操作符:

self.setDockOptions(self.dockOptions() & ~QMainWindow.AllowTabbedDocks)

要添加一个选项,使用| (OR)操作符:

self.setDockOptions(self.dockOptions() | QMainWindow.AllowTabbedDocks)

最新更新