PyQt5 QDockWidget – 检查浮动属性

  • Post category:Python

关于PyQt5的QDockWidget模块的使用,详细攻略如下:

QDockWidget的基本概念

QDockWidget是可以被浮动的小部件,类似于浮动窗口,可以嵌入到主窗口中,也可以拖动出主窗口独立存在。在主窗口的四个方向上分别可以停靠。

QDockWidget可以包含在一个QMainWindow单元之中,或者也可以被独立地显示。

PyQt5 QDockWidget-检查浮动属性

检查QDockWidget是否被浮动

主要函数为 isFloating(),返回值为布尔值True或False,分别表示当前对应的QDockWidget是否正在浮动状态中。

例如:

from PyQt5.QtWidgets import QMainWindow, QAction,QApplication, QDockWidget, QTextEdit
class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        ...

        # 创建QDockWidget
        dock = QDockWidget("Dockable", self)
        # 创建QTextEdit部件用来放入QDockWidget
        te = QTextEdit()
        dock.setWidget(te)
        # 将QDockWidget添加到QMainWindow中
        self.addDockWidget(Qt.BottomDockWidgetArea, dock)
        # 添加一个检查浮动属性的工具栏
        tb = self.addToolBar("检查浮动状态")
        # 添加一个action,并连接动作
        checkFloating = QAction('检查浮动状态', self)
        checkFloating.triggered.connect(self.printFloating)
        tb.addAction(checkFloating)

        self.setGeometry(300, 300, 800, 600)
        self.setWindowTitle('QDockWidget Demo')
        self.show()

    def printFloating(self):
        if dock.isFloating():
            print("QDockWidget处于浮动状态")
        else:
            print("QDockWidget未处于浮动状态")

在上述代码中,我们创建了一个QMainWindow,其中包含了一个QDockWidget和一个检查浮动状态的工具栏。每次点击工具栏上的“检查浮动状态”按钮时,程序会根据当前QDockWidget的浮动状态,输出对应的信息。

例如:在QMainWindow中,将QDockWidget至于左侧,未让其浮动,此时工具栏上的按钮输出为:QDockWidget未处于浮动状态。

设置QDockWidget是否可以浮动

主要函数为 setFloating(bool),参数为布尔值True或False,分别表示是否允许当前QDockWidget可以改变其位置以及是否允许在QMainWindow的中浮动。

例如:

from PyQt5.QtWidgets import QMainWindow, QAction,QApplication, QDockWidget, QTextEdit
class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        ...

        # 创建QDockWidget
        dock = QDockWidget("Dockable", self)
        # 创建QTextEdit部件用来放入QDockWidget
        te = QTextEdit()
        dock.setWidget(te)
        dock.setFloating(False)  # 设置QDockWidget不可浮动
        # 将QDockWidget添加到QMainWindow中
        self.addDockWidget(Qt.BottomDockWidgetArea, dock)
        # 添加一个检查浮动属性的工具栏
        tb = self.addToolBar("检查浮动状态")
        # 添加一个action,并连接动作
        checkFloating = QAction('检查浮动状态', self)
        checkFloating.triggered.connect(self.printFloating)
        tb.addAction(checkFloating)

        self.setGeometry(300, 300, 800, 600)
        self.setWindowTitle('QDockWidget Demo')
        self.show()

    def printFloating(self):
        if dock.isFloating():
            print("QDockWidget处于浮动状态")
        else:
            print("QDockWidget未处于浮动状态")

在上述代码中,我们创建了一个QMainWindow,其中包含了一个QDockWidget和一个检查浮动状态的工具栏。并且在代码中设置了QDockWidget不可浮动。每次点击工具栏上的“检查浮动状态”按钮时,程序都只会输出“QDockWidget未处于浮动状态”。