作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在QGraphicsScene
中绘制多边形,但是该多边形具有纬度/经度位置。在等角投影中,坐标来自:
^
90
|
|
-180----------------------------------->180
|
|
-90
QGraphicsScene
/
QGraphicsView
设置为此类投影?
最佳答案
像这样使用QGraphicsScene::setSceneRect()
:
scene->setSceneRect(-180, -90, 360, 180);
view->scale(1, -1)
垂直翻转QGraphicsView,以便正确显示场景。
qDebug()
显示单击位置。实际上,您实际上不需要继承QGraphicsScene。
#include <QtGui>
class CustomScene : public QGraphicsScene
{
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event)
{
qDebug() << event->scenePos();
}
};
class MainWindow : public QMainWindow
{
public:
MainWindow()
{
QGraphicsScene *scene = new CustomScene;
QGraphicsView *view = new QGraphicsView(this);
scene->setSceneRect(-180, -90, 360, 180);
view->setScene(scene);
view->scale(1, -1);
setCentralWidget(view);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
关于qt - 如何将QGraphicsScene/View设置为特定的坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10443894/
我是一名优秀的程序员,十分优秀!