这两天在写一个程序,其中需要在程序运行过程中不断的绘图,我的做法是,在需要绘图的时候,专门调用一个绘图函数(自己写的),如下:
 
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);
}
 
 但是在程序运行过程中,总是没有将图片绘上去,我是个菜鸟,希望哪位大神帮帮我,谢谢啊