📅  最后修改于: 2023-12-03 14:45:48.937000             🧑  作者: Mango
PyQt5是一款基于Python的GUI工具包。其中,QDockWidget是一种窗口部件,可用于将其他窗口部件添加到浮动或停靠窗口中。设置允许区域是指设置QDockWidget在添加到浮动或停靠窗口时可以停靠的位置。
from PyQt5 import QtWidgets, QtGui
class MyWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
dock1 = QtWidgets.QDockWidget("Dock Widget 1", self)
dock2 = QtWidgets.QDockWidget("Dock Widget 2", self)
dock3 = QtWidgets.QDockWidget("Dock Widget 3", self)
dock4 = QtWidgets.QDockWidget("Dock Widget 4", self)
self.setCentralWidget(QtWidgets.QLabel("Main Window"))
self.addDockWidget(QtCore.Qt.TopDockWidgetArea, dock1)
self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, dock2)
self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, dock3)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock4)
dock1.setAllowedAreas(QtCore.Qt.TopDockWidgetArea | QtCore.Qt.BottomDockWidgetArea)
dock2.setAllowedAreas(QtCore.Qt.TopDockWidgetArea | QtCore.Qt.BottomDockWidgetArea)
dock3.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
dock4.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
该示例创建一个QMainWindow,将四个QDockWidget添加到其中,并将其限制为可停靠的区域。dock1和dock2只能停靠在顶部或底部,而dock3和dock4只能停靠在左侧或右侧。这意味着如果尝试将dock2拖动到左侧或右侧,它将不会停靠。此示例还包括一个主窗口部件,该部件将填充QMainWindow的剩余空间。
dock1 = QtWidgets.QDockWidget("Dock Widget 1", self)
使用QtWidgets.QDockWidget
类创建一个QDockWidget对象,并将其命名为Dock Widget 1
,并将它绑定在当前的QMainWindow对象中。
self.setCentralWidget(QtWidgets.QLabel("Main Window"))
将QLabel
控件设置为主窗口控件。
dock1.setAllowedAreas(QtCore.Qt.TopDockWidgetArea | QtCore.Qt.BottomDockWidgetArea)
将可停靠区域限制为顶部和底部。同样地,dock2也被设置为可停靠区域的顶部和底部。dock3和dock4被设置为可停靠区域的左侧和右侧。
在PyQt5中,QDockWidget是一种非常实用的GUI工具,可以将其他窗口窗口部件添加到浮动或停靠窗口中。设置允许区域是限制QDockWidget在停靠时可停靠的位置。通过正确设置可停靠区域,可以在应用程序的外观和功能上实现很大的灵活性。