Ejemplo n.º 1
0
    def resizeEvent(self, event):
        q = self.parentWidget()
        fw = q.isFloating() and q.style().pixelMetric(
            QtGui.QStyle.PM_DockWidgetFrameWidth, None, q) or 0
        opt = QtGui.QStyleOptionDockWidgetV2()
        opt.initFrom(q)
        opt.rect = QtCore.QRect(
            QtCore.QPoint(fw, fw),
            QtCore.QSize(self.geometry().width() - (fw * 2),
                         self.geometry().height() - (fw * 2)))
        opt.title = q.windowTitle()
        opt.closable = hasFeature(q, QtGui.QDockWidget.DockWidgetClosable)
        opt.floatable = hasFeature(q, QtGui.QDockWidget.DockWidgetFloatable)

        floatRect = q.style().subElementRect(
            QtGui.QStyle.SE_DockWidgetFloatButton, opt, q)
        if not floatRect.isNull():
            self.floatButton.setGeometry(floatRect)
        closeRect = q.style().subElementRect(
            QtGui.QStyle.SE_DockWidgetCloseButton, opt, q)
        if not closeRect.isNull():
            self.closeButton.setGeometry(closeRect)
        top = fw
        if not floatRect.isNull():
            top = floatRect.y()
        elif not closeRect.isNull():
            top = closeRect.y()
        size = self.collapseButton.size()
        if not closeRect.isNull():
            size = self.closeButton.size()
        elif not floatRect.isNull():
            size = self.floatButton.size()
        collapseRect = QtCore.QRect(QtCore.QPoint(fw, top), size)
        self.collapseButton.setGeometry(collapseRect)
Ejemplo n.º 2
0
 def paintEvent(self, event):
     p = QtGui.QStylePainter(self)
     q = self.parentWidget()
     fw = q.isFloating() and q.style().pixelMetric(
         QtGui.QStyle.PM_DockWidgetFrameWidth, None, q) or 0
     mw = q.style().pixelMetric(QtGui.QStyle.PM_DockWidgetTitleMargin, None,
                                q)
     titleOpt = QtGui.QStyleOptionDockWidgetV2()
     titleOpt.initFrom(q)
     titleOpt.rect = QtCore.QRect(QtCore.QPoint(fw + mw + self.collapseButton.size().width(), fw),
         QtCore.QSize(
            self.geometry().width() - (fw * 2) - \
            mw - self.collapseButton.size().width(),
            self.geometry().height() - (fw * 2)))
     titleOpt.title = q.windowTitle()
     titleOpt.closable = hasFeature(q, QtGui.QDockWidget.DockWidgetClosable)
     titleOpt.floatable = hasFeature(q,
                                     QtGui.QDockWidget.DockWidgetFloatable)
     p.drawControl(QtGui.QStyle.CE_DockWidgetTitle, titleOpt)