关于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未处于浮动状态”。