Python 如何为QDockWidget设置不同的文本';s选项卡和窗口标题?
我已经子类化了Python 如何为QDockWidget设置不同的文本';s选项卡和窗口标题?,python,pyqt4,titlebar,qdockwidget,Python,Pyqt4,Titlebar,Qdockwidget,我已经子类化了QDockWidget,我正在通过myDockWidget.setWindowTitle(“一些文本”)设置标题栏文本。但是,当小部件停靠时,我希望在选项卡中显示不同的文本。换句话说,当小部件停靠时,我希望在标题栏中显示一个字符串,在选项卡中显示另一个字符串: 这可能吗?如果可能,如何实现?这可以通过重新实现paintEvent并覆盖默认标题栏文本来实现。窗口标题仍必须用于设置选项卡文本: class DockWidget(QtGui.QDockWidget): _tit
QDockWidget
,我正在通过myDockWidget.setWindowTitle(“一些文本”)
设置标题栏文本。但是,当小部件停靠时,我希望在选项卡中显示不同的文本。换句话说,当小部件停靠时,我希望在标题栏中显示一个字符串,在选项卡中显示另一个字符串:
这可能吗?如果可能,如何实现?这可以通过重新实现
paintEvent
并覆盖默认标题栏文本来实现。窗口标题仍必须用于设置选项卡文本:
class DockWidget(QtGui.QDockWidget):
_title_text = None
def titleText(self):
if self._title_text is None:
return self.windowTitle()
return self._title_text
def setTitleText(self, text):
self._title_text = text
self.repaint()
def paintEvent(self, event):
painter = QtGui.QStylePainter(self)
if self.isFloating():
options = QtGui.QStyleOptionFrame()
options.initFrom(self)
painter.drawPrimitive(QtGui.QStyle.PE_FrameDockWidget, options)
options = QtGui.QStyleOptionDockWidgetV2()
self.initStyleOption(options)
options.title = self.titleText()
painter.drawControl(QtGui.QStyle.CE_DockWidgetTitle, options)
dockWidget = DockWidget()
dockWidget.setWindowTitle('Tab Text')
dockWidget.setTitleText('Title Text')
附言:
请注意,另一个选项是使用。但是,这样做的最大缺点是,您会丢失所有本机窗口装饰。您可以使用图像指示您想要获得的内容。添加图像以进行说明。