QT 绘制像unity中状态模快的网格背景图

 效果如上:

代码如下:

代码中的图片是一张1024*1024的纯黑色背景图

void XXXXScene::drawBackground(QPainter *painter, const QRectF &rect)
{
        int gridW;
		int gridH;
		int startX;
		int startY;

		gridW = 15;
		gridH = 15;
		startX = rect.x();
		startY = rect.y();

        // static const QPixmap pixBackGround = QPixmap(":/images/background.png");
        QString strPixmapPath = ":/images/background.png";   //背景图
		painter->drawPixmap(QRect(startX, startY, 4000, 4000), QPixmap(strPixmapPath));

		QPen pen2(QColor(34, 34, 34));   //虚线
		pen2.setWidth(1);
		painter->setPen(pen2);

		QPen pen3(QColor(25, 25, 25));  //实线
		pen3.setWidth(1);

		for (int i = 0; i < 300; i++)
		{
			if (i % 10 == 0)
			{
				painter->setPen(pen3);
			}
			else
			{
				painter->setPen(pen2);
			}
			painter->drawLine(startX, startY + i * gridH, gridW * 1000 + startX, startY + i * gridH);		//画横线
			painter->drawLine(startX + gridW * i, startY, startX + i * gridW, startY + gridH * 1000);       //画竖线
		}

		painter->drawRect(rect);

		QPixmap pix(10, 10);
		pix.fill(Qt::transparent);
		setBackgroundBrush(pix);
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值