2010-05-10 7 views
0

Я начинаю использовать Qt в своем приложении. Мое приложение основано на MFC. Я хочу нарисовать некоторые QGraphicsItems в моем currect MFC виде, возможно ли это?Как нарисовать QGraphicsItem в представлении MFC

Вы можете сказать, что это может быть сделано путем размещения QGraphicsView с QWinWidget в представлении MFC, но это не работает. Потому что мой Canvas (MFC view) поддерживает масштабирование и вращение, в то время как сам QGraphicsView этого не делает. Когда я масштабирую QGraphicsItem, QGraphicsView показывает полосу прокрутки, а не увеличивая ее.

Любое предложение? Благодаря!

ответ

0

Теоретически можно использовать QGraphicsScene::paint рисовать сцену с вашим QGraphicsItems в буфере, а затем сделать его взгляд MFC, но это не имеет никакого смысла ...

В чем проблема с QGraphicsView в любом случае? Вы взглянули на функции rotate(), scale(), translate() или shear()?

+0

QGraphicsView - фактически QWidget. Когда я масштабирую его до большого размера, он масштабирует его содержимое (QGraphicsScene) и показывает полосу прокрутки. Когда я вращаю его, он также вращает его содержимое, а не сам. То, что я действительно хочу, это QGraphicsTextItem. Я хочу показать его в представлении MFC, и когда я увеличиваю холст или поворачиваю холст в 3D-представлении, текст также должен масштабироваться или поворачиваться. И я также могу редактировать текст в холсте. Возможно ли, что у QGraphicsView есть такая возможность? Не создавать границы и настраивать себя по своему содержанию (QGraphicsScene)? –

0

Вы можете отключить отображение полосы прокрутки QGraphicsView, установив ScrollBarPolcies в Qt :: ScrollBarAlwaysOff. (QGraphicsView является подклассом QAbstractScrollArea.)

Я не уверен, что понимаю, что вы подразумеваете под поворотом самого QGraphicsView вместо содержимого. Без полос прокрутки я не вижу разницы. Кроме того, многие функции QGraphicsItem, такие как редактирование, как вы указали, зависят от обработки событий в QGraphicsScene и QGraphicsView для работы. Я не думаю, что включение QGraphicsItem в MFC-представление сделает то, что вы хотите.

+0

Возможно, мне нужно, чтобы QGraphicsView занимал весь холст и делал его полупрозрачным. Как вы сказали, без QGraphicsView также могут потерять возможности редактирования. Благодарю. –