qt开发(二): graphic view放大导致text失真的完美解决办法
来源:互联网 发布:浙江大学软件学院宿舍 编辑:程序博客网 时间:2024/06/15 11:27
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开发(二): graphic view放大导致text失真的完美解决办法
- Qt绘图3--Graphic View Framework
- Qt 的 Graphics View 框架(二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- Qt的Model/View (二)
- ico文件失真的解决办法
- Qt的Model/View (二)
- 完美主义导致的性格问题简述以及解决办法
- 代码段(.text段)太长,导致无法在线仿真的解决办法 ——拆分.text段
- iOS如何完美简单实现UITableView索引的放大悬浮提示View显示
- 基于opencv的图像的无失真放大
- Linux驱动学习12(初步认识内存管理)
- linux out of memory分析
- NoSQL之Redis高级实用命令详解--安全和主从复制
- discuz中forum_post status字段的使用
- 有名管道的创建和读取
- qt开发(二): graphic view放大导致text失真的完美解决办法
- 第一次发
- 黑马程序员_java高级篇网络编程基础概念Day7
- openerp开发ORM对象基本信息
- android notification 的总结分析
- 小波变换和motion信号处理(二)
- Linux嵌入式交叉编译环境 的搭建
- json 数据类型返回值区别
- TabHost和android:layout_height="0.0dip"以及android:layout_weight配合在布局中的使用