Chapter 1 paintEvent绘制事件


void FuelRemaining::paintEvent(QPaintEvent *)
{
	QPainter painter(this);
	painter.setRenderHint(QPainter::Antialiasing); // 设置渲染提示为抗锯齿
	painter.save();


	// 绘制中心的实心圆
	painter.setBrush(Qt::cyan);
	painter.drawEllipse(width() / 2 - 50, height() / 2 - 50, 100, 100);

	// 绘制外围的空心圆
	painter.setBrush(Qt::NoBrush);
	painter.setPen(QPen(Qt::cyan, 10));
	painter.drawEllipse(width() / 2 - 70, height() / 2 - 70, 140, 140);

	// 绘制上下左右的线段
	painter.setPen(QPen(Qt::cyan, 10));
	painter.drawLine(width() / 2, height() / 2 - 70, width() / 2, height() / 2 - 80); // 上
	painter.drawLine(width() / 2, height() / 2 + 70, width() / 2, height() / 2 + 80); // 下
	painter.drawLine(width() / 2 - 70, height() / 2, width() / 2 - 80, height() / 2); // 左
	painter.drawLine(width() / 2 + 70, height() / 2, width() / 2 + 80, height() / 2); // 右

	painter.restore();
	// 将坐标原点移动到窗口中心
	int centerX = width() / 2;
	int centerY = height() / 2;
	painter.translate(centerX, centerY);
	//倾斜坐标
	painter.rotate(30);
	QPixmap pic(R"(E:\ProjectEnvironment\data\System\Images\tools\navigator_earth\compass.png)");
	pic.scaled(60, 60);
	painter.drawPixmap(-pic.width() / 2, -pic.height() / 2, pic);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值