pyside6 设置功能区域虚线边框,并在虚线上写功能区名称
时间: 2025-06-09 13:04:03 浏览: 19
在PySide6中,为了设置QMainWindow的功能区(通常称为`DockWidget`)带有虚线边框并显示功能区名称,你需要使用`QDockWidget`类的一些属性和方法,同时结合Qt的样式和布局技巧。以下是一个简单的示例:
```python
from PySide6.QtWidgets import QApplication, QMainWindow, QDockWidget, QVBoxLayout, QLabel
from PySide6.QtGui import QPainter, QColor, QFontMetrics
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建功能区域
self.dock_widget = QDockWidget("功能区名称", self)
self.dock_widget.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) # 设置允许区域
# 添加虚线边框
painter = QPainter(self.dock_widget.frame())
painter.setPen(QColor("#BDBDBD")) # 虚线颜色,默认灰色
painter.drawLine(0, 0, self.dock_widget.width(), 0) # 第一行虚线
painter.drawLine(0, self.dock_widget.height() - 1, self.dock_widget.width(), self.dock_widget.height() - 1) # 最后一行虚线
for i in range(1, self.dock_widget.height() // 4): # 每隔一定高度画一条虚线
painter.drawLine(0, i * (self.dock_widget.height() // 4), self.dock_widget.width(), i * (self.dock_widget.height() // 4))
painter.end()
# 内部布局
layout = QVBoxLayout()
label = QLabel("功能描述", self.dock_widget)
layout.addWidget(label)
self.dock_widget.setLayout(layout)
# 初始化应用
app = QApplication([])
window = MyMainWindow()
window.show()
app.exec_()
```
在这个例子中,我们创建了一个名为`MyMainWindow`的窗口,并在其中添加了一个带虚线边框的QDockWidget。虚线是在`QPainter`上下文中手动绘制的,而功能区名称则通过QLabel显示。
阅读全文
相关推荐


















