qdockwidget自定义标题栏
时间: 2023-09-03 19:13:15 浏览: 61
QDockWidget提供了一个默认的标题栏,但是你可以通过继承QDockWidget并自定义QWidget来替换默认的标题栏。以下是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QDockWidget, QHBoxLayout, QLabel, QPushButton, QWidget
class CustomTitleBar(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.layout = QHBoxLayout(self)
self.layout.setContentsMargins(0, 0, 0, 0)
self.title = QLabel("Custom Title")
self.button = QPushButton("Close")
self.button.clicked.connect(self.parent().close) # 关闭QDockWidget
self.layout.addWidget(self.title)
self.layout.addStretch()
self.layout.addWidget(self.button)
class CustomDockWidget(QDockWidget):
def __init__(self, title, parent=None):
super().__init__(title, parent)
self.setTitleBarWidget(CustomTitleBar(self))
```
在上面的代码中,我们创建了一个CustomTitleBar作为QDockWidget的标题栏,并将其设置为QDockWidget的标题栏。CustomTitleBar包含一个QLabel和一个QPushButton,分别用于显示标题和关闭QDockWidget。你可以根据需要调整CustomTitleBar的布局和样式。