コード例 #1
0
    def _test_visibility(self, view: StickyGraphicsView) -> None:
        header = view.headerView()
        footer = view.footerView()
        vsbar = view.verticalScrollBar()
        vsbar.triggerAction(vsbar.SliderToMinimum)
        self._ensure_laid_out(view)

        self.assertFalse(header.isVisibleTo(view))
        self.assertTrue(footer.isVisibleTo(view))

        vsbar.triggerAction(vsbar.SliderSingleStepAdd)
        self._ensure_laid_out(view)

        self.assertTrue(header.isVisibleTo(view))
        self.assertTrue(footer.isVisibleTo(view))

        vsbar.triggerAction(vsbar.SliderToMaximum)
        self._ensure_laid_out(view)

        self.assertTrue(header.isVisibleTo(view))
        self.assertFalse(footer.isVisibleTo(view))

        vsbar.triggerAction(vsbar.SliderSingleStepSub)
        self._ensure_laid_out(view)
        if not view.style().styleHint(QStyle.SH_ScrollBar_Transient, None,
                                      vsbar):
            # cannot reliably test due to QTBUG-65074
            self.assertTrue(header.isVisibleTo(view))
            self.assertTrue(footer.isVisibleTo(view))
コード例 #2
0
    def test(self):
        view = StickyGraphicsView()
        scene = QGraphicsScene(view)
        scene.setBackgroundBrush(QBrush(Qt.lightGray, Qt.CrossPattern))
        view.setScene(scene)
        scene.addRect(QRectF(0, 0, 300, 20), Qt.red,
                      QBrush(Qt.red, Qt.BDiagPattern))
        scene.addRect(QRectF(0, 25, 300, 100))
        scene.addRect(QRectF(0, 130, 300, 20), Qt.darkGray,
                      QBrush(Qt.darkGray, Qt.BDiagPattern))
        view.setHeaderSceneRect(QRectF(0, 0, 300, 20))
        view.setFooterSceneRect(QRectF(0, 130, 300, 20))

        header = view.headerView()
        footer = view.footerView()

        view.resize(310, 310)
        view.grab()

        self.assertFalse(header.isVisibleTo(view))
        self.assertFalse(footer.isVisibleTo(view))

        view.resize(310, 100)
        view.verticalScrollBar().setValue(0)  # scroll to top
        view.grab()

        self.assertFalse(header.isVisibleTo(view))
        self.assertTrue(footer.isVisibleTo(view))

        view.verticalScrollBar().setValue(
            view.verticalScrollBar().maximum())  # scroll to bottom
        view.grab()

        self.assertTrue(header.isVisibleTo(view))
        self.assertFalse(footer.isVisibleTo(view))

        qWheelScroll(header.viewport(), angleDelta=QPoint(0, -720 * 8))