0
回答
Qt中的QGraphicsScene等对象的坐标系是怎么设置的?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

现在在用Qt做一个需要绘图部件,需要用到QGraphicsScene、QGraphicsView和QGraphicsItem三个类,绘制的函数是知道了,就是坐标系的设置还不明白。

若是VB的话,坐标系设置直接一句"Object.Scale (TopLeftX,TopLeftY)-(BottomRightX,BottomRightY)"就行了,但是在Qt里看到有setWindow、scale、setScale、translate等等等等我都搞不清楚了……

找了一些资料,资料的重点都是在三个坐标系统的矩阵变换上,没有公式含含糊糊说来说去完全看不懂。

现在我大概试验出来的就是这几点:
1、QGraphicsItem::setScale(qreal) 可以设置项的放大倍数。
2、QGraphicsScene 的坐标系单位长度总是1像素。
3、QGraphicsView::scale(qreal,qreal) 可以设置视窗的横纵放大系数。
4、视窗坐标缩放会连带项的缩放。
其他都不知道……

我的问题就是:

1、对于QGraphicsItem类,怎样设置一个形如"(X1,Y1)-(X2,Y2)"的坐标系?是对类进行设置还是对shape()、boundingRect()的返回值进行设置还是怎样?

2、对于QGraphicsScene类,能不能设置自定义坐标系?可以的话要如何设置?

3、对于QGraphicsView类,如果依照场景坐标系计算,怎样设置视窗的边界?

以上问题……

Qt
举报
Vicet
发帖于4年前 0回/1K+阅
顶部