Qt 绘制中的视口(setViewport)和窗口(setWindow)

重点  :

1.绘制(QPainter)可以设置视口,视口下设置窗口,而绘制的构件是以窗口为坐标系进行绘画。

2.先根据绘图设备的物理坐标系的矩形位置,设置视图视口setViewport,然后在以视口为区域去设置窗口的左上角位置和长宽矩形区域,视口的左上角为0,0点,窗口根据计算将视口的左上角作为窗口坐标系左上角的位置。

void Widget::myDrawWire()
{
	QPainter    painter(this);
	painter.setRenderHint(QPainter::Antialiasing);

	int W=width();
	int H=height();
	int side=qMin(W,H);         //取长和宽的小值
	QRect rect((W-side)/2, (H-side)/2,side,side);   //viewport矩形区
	painter.drawRect(rect);     //绘制Viewport边界
	painter.setViewport(rect);  //设置Viewport
	painter.setWindow(-100,-100,200,200);   //设置窗口坐标系


	//设置画笔
	QPen    pen;
	pen.setWidth(1);        //线宽
	pen.setColor(Qt::red);  //划线颜色
	pen.setStyle(Qt::SolidLine);    //线的类型
	pen.setCapStyle(Qt::FlatCap);   //线端点样式
	pen.setJoinStyle(Qt::BevelJoin);//线的连接点样式
	painter.setPen(pen);

	for(int i=0; i<36; i++)
	{
		painter.drawEllipse(QPoint(50,0),50,50);
		painter.rotate(10);
	}

}

相关推荐

  1. QT窗口坐标全局坐标

    2024-03-11 21:38:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 21:38:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 21:38:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 21:38:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 21:38:01       18 阅读

热门阅读

  1. LeetCode解法汇总2129. 将标题首字母大写

    2024-03-11 21:38:01       18 阅读
  2. 【SQL实用技巧】-- 分组内求topN问题

    2024-03-11 21:38:01       18 阅读
  3. 全方位理解架构

    2024-03-11 21:38:01       20 阅读
  4. Spring AOP

    2024-03-11 21:38:01       20 阅读
  5. web蓝桥杯真题:展开你的扇子

    2024-03-11 21:38:01       18 阅读
  6. linux 环境变量

    2024-03-11 21:38:01       23 阅读
  7. Vue3:toRef和toRefs的用法

    2024-03-11 21:38:01       22 阅读
  8. 【C++】【设计模式的六大原则】

    2024-03-11 21:38:01       23 阅读