Qt学习---视口和窗口的理解

1、首先视口与物理坐标相对应,指的是我们在屏幕上看到的实际的一个个像素点和其坐标;窗口和逻辑坐标相对应。在Qt中进行绘图时,都是现在逻辑坐标系中绘制好,然后在转换到物理坐标系(视口)上去,所以Qt中的绘图函数的参数也都是针对逻辑坐标的。

(1)、默认情况下,逻辑坐标和物理坐标的原点和单位长度是一致的,所以下面代码绘制:

QPainter painter(this);

	painter.setRenderHint(QPainter::Antialiasing,true);
	//定义线性渐变对象
	QLinearGradient linearGradient(0,0,200,200);
	linearGradient.setColorAt(0.2,Qt::white);
	linearGradient.setColorAt(0.6,Qt::green);
	linearGradient.setColorAt(01.0,Qt::black);
	painter.setPen(QPen(QBrush(linearGradient),5));

	painter.drawLine(0,0,100,100);

Qt学习---视口和窗口的理解_第1张图片

视口展现出来的绘制的线段大小永远是不变的,长和宽都是100.

(2)、进行setwindow后:

QPainter painter(this);

	/*设置逻辑坐标(50,50)对应设备坐标的原点
	 *设置逻辑宽(100)和高(100)分别对相应设备的宽和高
	 *这样窗口中的逻辑坐标和视口中的物理坐标总成一种
	 *对应的比例关系,和设备的大小和分辨率无关。 
	*/
	painter.setWindow(50,50,100,100);

	painter.setRenderHint(QPainter::Antialiasing,true);
	//定义线性渐变对象
	QLinearGradient linearGradi

你可能感兴趣的:(QT)