Я экспериментирую с редактором WYSIWYG, который позволяет пользователю рисовать фигуры на странице, и поддержка графической сцены Qt кажется идеальной для этого. Однако вместо работы в пикселях я хочу, чтобы все мои QGraphicsItem
объекты работали с точностью до десятых долей миллиметра, но я не знаю, как этого добиться.
Например:
// Create a scene that is the size if an A4 page (2100 = 21cm, 2970 = 29.7cm)
QGraphicsScene* scene = new QGraphicsScene(0, 0, 2100, 2970);
// Add a rectangle located 1cm across, 1cm down, 5cm wide and 2cm high
QGraphicsItem* item = scene->addRect(100, 100, 500, 200);
...
QGraphicsView* view = new QGraphicsView(scene);
setCentralWidget(view);
Теперь, когда я отображаю сцену выше, я хочу, чтобы фигуры отображались в правильном размере для DPI экрана. Это просто случай использования QGraphicsView::scale
или мне нужно сделать что-то более сложное?
Обратите внимание, что если бы вместо этого я использовал собственный QWidget, я бы использовал QPainter::setWindow
и QPainter::setViewport
для создания пользовательского режима отображения, но я не вижу, как это сделать, используя поддержку графических сцен.