PyQt5是Python中一个用于设计GUI图形界面的框架,其中QDockWidget是用于在应用程序中创建停靠窗口的小部件之一。QDockWidget支持水平和垂直(默认)两种方向的停靠布局,可以使用setOrientation()方法设置。
设置布局方向
QDockWidget的setOrientation()方法可以设置停靠窗口的方向,可以接受Qt.Qt.Horizontal和Qt.Qt.Vertical两个参数。默认情况下,该方向为垂直方向。
示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDockWidget, QTextEdit
from PyQt5.Qt import Qt
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建停靠窗口部件
dock_widget = QDockWidget("Dock", self)
# 设置停靠窗口不可拖动
dock_widget.setFeatures(QDockWidget.AllDockWidgetFeatures)
# 设置停靠窗口内容为文本编辑器
dock_widget.setWidget(QTextEdit())
# 添加停靠窗口部件到主窗口的右侧
self.addDockWidget(Qt.RightDockWidgetArea, dock_widget)
self.setGeometry(300, 300, 350, 250)
self.setWindowTitle('Basic DockWidget')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
运行上述代码,可以看到应用程序中出现一个默认的QDockWidget,垂直停靠在主窗口的右侧。此处设置停靠窗口不可拖动,设置停靠窗口内容为文本编辑器。
接下来,我们将演示如何将停靠窗口改为水平方向。
示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDockWidget, QTextEdit
from PyQt5.Qt import Qt
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建停靠窗口部件
dock_widget = QDockWidget("Dock", self)
# 设置停靠窗口方向为水平
dock_widget.setOrientation(Qt.Horizontal)
# 设置停靠窗口不可拖动
dock_widget.setFeatures(QDockWidget.AllDockWidgetFeatures)
# 设置停靠窗口内容为文本编辑器
dock_widget.setWidget(QTextEdit())
# 添加停靠窗口部件到主窗口的下方
self.addDockWidget(Qt.BottomDockWidgetArea, dock_widget)
self.setGeometry(300, 300, 350, 250)
self.setWindowTitle('Basic DockWidget')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
运行上述代码,可以看到应用程序中出现一个水平停靠的QDockWidget,停靠在主窗口的下方。在createDockWidget()方法中,调用了setOrientation()方法并传入了Qt.Horizontal参数,将停靠窗口方向设置为水平。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 QDockWidget – 设置布局方向 - Python技术站