#include #include #include #include #include #include #include #include class MyItem : public QGraphicsItem { public: explicit MyItem(const QPolygonF &polygon) : mPolygon{polygon} {} ~MyItem() override = default; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override { painter->drawPolyline(mPolygon); } QRectF boundingRect() const override { return mPolygon.boundingRect(); } private: QPolygonF mPolygon; }; int main(int argc, char *argv[]) { QApplication a(argc, argv); constexpr double maxInt{std::numeric_limits::max()}; constexpr double start{10.0}; constexpr double okayY{maxInt + start - 1}; constexpr double tooMuchY{maxInt + start}; const QPolygonF polygon1{QVector{{start, start}, {start, okayY}}}; const QPolygonF polygon2{QVector{{start, start}, {start, tooMuchY}}}; QWidget mainWidget; QHBoxLayout layout; mainWidget.setLayout(&layout); mainWidget.setFixedWidth(400); mainWidget.show(); const auto makeSceneWithItem{[](const QPolygonF &polygon) { auto *scene{new QGraphicsScene}; scene->addItem(new MyItem{polygon}); auto *view{new QGraphicsView}; view->setScene(scene); return view; }}; layout.addWidget(makeSceneWithItem(polygon1)); layout.addWidget(makeSceneWithItem(polygon2)); return QCoreApplication::exec(); } #include "main.moc"