try: from PyQt5 import QtCore from PyQt5 import QtWidgets except ImportError: from PyQt4 import QtCore from PyQt4 import QtGui as QtWidgets class ToolBar(QtWidgets.QToolBar): def __init__(self, title): super(ToolBar, self).__init__(title) layout = self.layout() m = (0, 0, 0, 0) layout.setSpacing(0) layout.setContentsMargins(*m) self.setContentsMargins(*m) self.setWindowFlags(self.windowFlags() | QtCore.Qt.FramelessWindowHint) def addAction(self, action): if isinstance(action, QtWidgets.QWidgetAction): return super(ToolBar, self).addAction(action) btn = ToolButton() btn.setDefaultAction(action) btn.setToolButtonStyle(self.toolButtonStyle()) self.addWidget(btn) class ToolButton(QtWidgets.QToolButton): """ToolBar companion class which ensures all buttons have the same size.""" minSize = (60, 60) def minimumSizeHint(self): ms = super(ToolButton, self).minimumSizeHint() w1, h1 = ms.width(), ms.height() w2, h2 = self.minSize ToolButton.minSize = max(w1, w2), max(h1, h2) return QtCore.QSize(*ToolButton.minSize)