qt开发(二): graphic view放大导致text失真的完美解决办法

原创 2013年12月04日 12:12:55

text变形其实本质是painter被加上scale之后,text也随之改变,解决办法是把这个scale找出来,让他只作用于坐标而不作用于text本身。

void Line::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
           QWidget *widget){
    painter->setPen(myPen);
    painter->drawLine(myLine);
    if(mark_.isEmpty()==false){
        painter->setPen(QPen(Qt::black));
        double x1 = myLine.x1();
        double y1 = myLine.y1();
        double x2 = myLine.x2();
        double y2 = myLine.y2();
        QFont font = painter->font();
        font.setPixelSize(16);
        painter->setFont(font);
        QFontMetrics fm(painter->font());
        int textWidthInPixels = fm.width(mark_);
        int textHeightInPixels = fm.height();

        QTransform trans = painter->worldTransform();
        qDebug()<<trans;
        double scale = trans.m11();
        painter->scale(1/scale, 1/scale);
        double x_t = textWidthInPixels- 10;
        double y_t = y2 + textHeightInPixels/2;
        painter->drawText(QPoint(x_t*scale,y_t*scale),mark_);
 
    }
}

相关文章推荐

Qt浅谈之二十三QGraphicsItem旋转动画

一、简介        QGraphicsItem中水平动画使用QGraphicsItemAnimation和QTimeLine即可实现,而旋转动画须使用QTimeLine和QTransform来实...

QGraphicsView放大和缩小下鼠标位置使用鼠标滚轮

c++ qt qgraphicsview 我有一个在屏幕中间的QGraphicsView窗口的应用程序。我想能够放大和车轮滚动。 目前,我有重新的QGraphicsView和重写的滚动函数,让是do...

交互式QGraphicsView(平移/缩放/旋转)

Graphics View提供了一个平台,用于大量自定义 2D 图元的管理与交互,框架包括一个事件传播架构,支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘...

GraphicsView的旋转,放缩

视图可以通过矩阵 QMatrix 设置放缩,旋转; 在Qt , GDI+等多种绘图方式中,矩阵方式概念变化图像,是图像变化的一种高级方式; // extern GraphicsView *   g...

ImageView的几种对图片的缩放处理 解决imageview放大图片后失真问题解决办法

我的解决办法: 1 首先设置android:layout_width=”wrap_content”和android:layout_height=”wrap_content”,否则你按比例缩放后的...

Android TV开发遇到的图片失真问题以及对应的解决办法

现在的Android机顶盒为了兼容电视屏幕,一般都会设置一个修改分辨率的功能。然而这个修改分辨率很多时候其实不是修改系统实际分辨率,而是一个输出分辨率。   因为在Android系统中,图像从生成到...

iOS中NSString转float失真问题的解决办法

直接打印[@"21.2" floatValue],得到的结果是 ———————————————————————————— ———————————————————————————— 百...

关于Android平台下png图片渐变失真的解决办法

原创文章,转载请注明出处:http://blog.csdn.net/jyxpm/article/details/8562583             前几天在测试应用的时候发现,把渐变png做为...
  • jyxpm
  • jyxpm
  • 2013年02月01日 12:30
  • 1484

【MFC中关于插入位图失真的解决办法】

MFC中插入位图到控件不失真的方法。

ppt导出pdf后非矢量图图片失真的解决办法

背景明明有了高清的图片,为什么导入PPT后图像反而模糊了?导出pdf后图片更是惨不忍睹?今天为了解决这个问题,我又折腾了一会儿。准备 Adobe Acrobat pro PPT PhotoZoom 获...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:qt开发(二): graphic view放大导致text失真的完美解决办法
举报原因:
原因补充:

(最多只允许输入30个字)