QT的坐标系统
来源:互联网 发布:javaweb查询数据库 编辑:程序博客网 时间:2024/05/01 12:02
默认情况下,窗口和视口值得的都是绘图设备的那个矩形。
在Win10下,没有改变一个自定义的widget的尺寸时(通过resize() 函数,resize() 函数的参数是物理像素),画出的widget是640×480物理像素的。
void PaintD::paintEvent(QPaintEvent *){ painter.begin(this); painter.fillRect(0, 0, 200, 200, Qt::green); painter.drawPoint(100, 100); painter.drawLine(0,0, 100, 100); painter.end();}使用默认的窗口的物理大小,此时的逻辑坐标和物理坐标一致:
当改变窗口的逻辑尺寸,注意物理尺寸默认的仍然是640*480的物理像素大小。
void PaintD::paintEvent(QPaintEvent *){ painter.begin(this); painter.setWindow(0, 0, 200, 200); //设置逻辑坐标窗口的尺寸 painter.fillRect(0, 0, 200, 200, Qt::green); painter.translate(100, 100); //平移坐标原点到矩形的中心 painter.drawPoint(100, 100); painter.drawLine(0,0, 100, 100); painter.end();}
当改变窗口坐标系之后再修改视口坐标系:
void PaintD::paintEvent(QPaintEvent *){ painter.begin(this); painter.setWindow(0,0,200, 400); painter.setViewport(0, 0, 200, 200); //设置逻辑坐标窗口的尺寸 painter.fillRect(0, 0, 200, 200, Qt::green); painter.drawPoint(100, 100); painter.drawLine(0,0, 100, 100); painter.end();}
此时视口的大小为 200×200/200 = 200, 200×200/400 = 100.
也就是绿色的区域的大小为200*100 物理像素。
给人的感觉是:画图的区域由视口和窗口的较小的那个决定,包括QPainter 的坐标。较小的那个尺寸需要按照较大的那个,按照比例来换算。较大的那个的尺寸是物理像素尺寸。
0 0
- QT的坐标系统
- QT坐标系统的变化
- QT坐标系统的变化
- 深入探索Qt的坐标系统
- 利用Qt的坐标系统绘图
- Qt 坐标系统
- Qt坐标系统
- Qt 坐标系统 笔记
- Qt 坐标系统 笔记
- Qt 坐标系统
- Qt坐标系统
- Qt坐标系统
- qt坐标系统见解
- qt坐标系统
- QT坐标系统
- QT坐标系统
- QT坐标系统
- QT 坐标系统
- 浅析oracle备份脚本代码
- 内存管理机制
- 协同过滤推荐算法-----向量之间的相似度
- 【.Net码农】SWFUpload 在IE9下不显示问题及IE9中模态窗下flash文件选择问题的处理
- SPH算法简介2
- QT的坐标系统
- ionic 框架搭建
- CF 589F 网络流(or贪心?)
- MySQL 复习笔记
- 成员变量和局部变量有什么区别?
- SPH算法简介3
- 关于anaconda分析的第一篇
- python pandas库基础
- Yotoc Project快速指南