class TestGraphicsPixmapWidget(GuiTest): def setUp(self) -> None: super().setUp() self.scene = QGraphicsScene() self.view = QGraphicsView(self.scene) def tearDown(self) -> None: self.scene.clear() self.scene.deleteLater() self.view.deleteLater() del self.scene del self.view def test_graphicspixmapwidget(self): w = GraphicsPixmapWidget() self.scene.addItem(w) w.setPixmap(QPixmap(100, 100)) p = w.pixmap() self.assertEqual(p.size(), QSize(100, 100)) self.view.grab() w.setScaleContents(True) w.setAspectRatioMode(Qt.KeepAspectRatio) s = w.sizeHint(Qt.PreferredSize) self.assertEqual(s, QSizeF(100., 100.)) s = w.sizeHint(Qt.PreferredSize, QSizeF(200., -1.)) self.assertEqual(s, QSizeF(200., 200.)) s = w.sizeHint(Qt.PreferredSize, QSizeF(-1., 200.)) self.assertEqual(s, QSizeF(200., 200.)) self.view.grab()
def test_tool_tips(self): scene = GraphicsScene() view = QGraphicsView(scene) w = TextListWidget() text = "A" * 10 w.setItems([text, text]) scene.addItem(w) view.grab() # ensure w is laid out wrect = view.mapFromScene(w.mapToScene( w.contentsRect())).boundingRect() p = QPoint(wrect.topLeft() + QPoint(5, 5)) ev = QHelpEvent(QHelpEvent.ToolTip, p, view.viewport().mapToGlobal(p)) try: QApplication.sendEvent(view.viewport(), ev) self.assertEqual(QToolTip.text(), text) finally: QToolTip.hideText()