这两天在写一个程序,其中需要在程序运行过程中不断的绘图,我的做法是,在需要绘图的时候,专门调用一个绘图函数(自己写的),如下:
void MainWindow::paint(int x, int y, int type)
{
QPainter painter(this);
qDebug() << tr("it's paint");
QBrush brush(QColor(0,0,255),Qt::Dense4Pattern);
if (type == 0)
{
//type==0,直接绘制matrix[x][y].name
switch (matrix[x][y].name)
{
case '0':
brush.setTexture(QPixmap(":/image/images/Null.png"));
qDebug() << "case 0";
break;
case '1':
brush.setTexture(QPixmap(":/image/images/1.png"));
qDebug() << "case 1";
break;
case '2':
brush.setTexture(QPixmap(":/image/images/2.png"));
qDebug() << "case 2";
break;
case '3':
brush.setTexture(QPixmap(":/image/images/3.png"));
qDebug() << "case 3";
break;
case '4':
brush.setTexture(QPixmap(":/image/images/4.png"));
qDebug() << "case 4";
break;
case '5':
brush.setTexture(QPixmap(":/image/images/5.png"));
qDebug() << "case 5";
break;
case '6':
brush.setTexture(QPixmap(":/image/images/6.png"));
qDebug() << "case 6";
break;
case '7':
brush.setTexture(QPixmap(":/image/images/7.png"));
qDebug() << "case 7";
break;
case '8':
brush.setTexture(QPixmap(":/image/images/8.png"));
qDebug() << "case 8";
break;
}
}
else
{
//type==1,此时判断matrix[x][y].bombtag的值,如果true,则绘制flag,否则绘制Null
if (matrix[x][y].bombtag)
{
brush.setTexture(QPixmap(":/image/images/flag.png"));
}
else
{
brush.setTexture(QPixmap(":/image/images/Null.png"));
}
}
painter.setBrushOrigin(51+20*x,1+20*y);
painter.setBrush(brush);
painter.drawRect(51+20*x,1+20*y,19,19);
}
但是在程序运行过程中,总是没有将图片绘上去,我是个菜鸟,希望哪位大神帮帮我,谢谢啊