当前位置: 代码迷 >> QT开发 >> 关于QPainter绘图,该如何解决
  详细解决方案

关于QPainter绘图,该如何解决

热度:32   发布时间:2016-04-25 04:25:16.0
关于QPainter绘图
实在想不出怎么写了,我是新手,在写一个坦克游戏,在绘制方面不会了,
大致结构是这样,class tank : public QWidget, class Btank:public tank,  
class Gtank:public tank,  
class Widget : public QWidget (此为主窗口)此类的构造函数中包含:

Gtank *u= new Gtank(this);
Btank *i= new Btank(this);

就是想把这两种坦克都画在Widget里,相关函数如下:
void tank::paintEvent(QPaintEvent *)  
{
  QPainter painter(this);
  painter.drawPixmap(QPoint(0,0),*pix);
}


void Btank::draw()  
{
  if(alive==true)
  {
  pix=new QPixmap(800,600);
  pix->fill(Qt::blue);
  QPainter painter(pix);
  image.load("image/down.png");
  painter.drawImage(QPoint(X,Y),image); //---此处X,Y都是0,构造函数中赋值了
  }
}

void Gtank::draw()  
{
  if(alive==true)
  {
  pix=new QPixmap(800,600);
  pix->fill(Qt::green);
  QPainter painter(pix);
  painter.drawImage(QPoint(X,Y),image);//此处X,Y都是三百
  }

}

主窗口是800*600的,运行后无报错,但是效果不对,如果只是Gtank u; u.show()而不是Widget w; w.show()就还正常

求帮助,不知道这算伸手不。。给个大致思路也行,在网上看了QPainter的相关文档,可是用起来还是不懂

------解决方案--------------------
我觉得你应该用QGraphicsItem和QGraphicsView.
------解决方案--------------------
探讨

我觉得你应该用QGraphicsItem和QGraphicsView.

------解决方案--------------------
建议看一下《编程思想》