Advertisement
StSav012

QDockWidget without & in the Title

Jul 4th, 2025
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.31 KB | Source Code | 0 0
  1. import sys
  2.  
  3. from PySide6 import QtCore, QtWidgets
  4.  
  5. if sys.platform == "win32":
  6.  
  7.     class DockWidget(QtWidgets.QDockWidget):
  8.         """A `QtWidgets.QDockWidget` that doesn't display an `&` in the title.
  9.  
  10.        The issue occurs on Windows OS.
  11.        """
  12.  
  13.         def __init__(self, parent: QtWidgets.QWidget | None = None) -> None:
  14.             super().__init__(parent)
  15.  
  16.             @QtCore.Slot()
  17.             def on_top_level_changed(_top_level: bool) -> None:
  18.                 if self.windowHandle() is not None:
  19.                     self.windowHandle().setTitle(self.windowTitle().replace("&", ""))
  20.  
  21.             self.topLevelChanged.connect(on_top_level_changed)
  22.  
  23.         def restoreGeometry(self, geometry: QtCore.QByteArray | bytes | bytearray | memoryview) -> bool:
  24.             res: bool = super().restoreGeometry(geometry)
  25.             if self.windowHandle() is not None:
  26.                 self.windowHandle().setTitle(self.windowTitle().replace("&", ""))
  27.             return res
  28.  
  29.         def setWindowTitle(self, title: str) -> None:
  30.             super().setWindowTitle(title.replace("&", ""))
  31.             if self.windowHandle() is not None:
  32.                 self.windowHandle().setTitle(title.replace("&", ""))
  33.             self.toggleViewAction().setText(title)
  34.  
  35.     QtWidgets.QDockWidget = DockWidget
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement