2014-03-04 3 views
1

나는 QGraphicsScene입니다. 그 장면에서 나는 rects가 있고 그 rects에있는 다른 색깔을 놓고 싶다.qt에서 배경색 설정

내 코드

QGraphicsScene* scene; 
scene = new QGraphicsScene(this); 
QGraphicsView* view; 
view = new QGraphicsView(this); 
view->setGeometry(x, y, mapColumns * min_height_size, mapRows * min_width_size); 
view->setScene(scene); 

for(int i=0; i<mapRows; ++i){ 
    for(int j=0; j<mapColumns; ++j){ 
     if (j == 0) { 
      y = 20; 
     } 
     if(map.getCell(i,j).getTerrain() == Cell::forest) { 
      scene->addRect(x,y,min_height_size,min_width_size); 
      scene->setPalette(Qt::green); //but it didn't work 
      y += min_width_size; 
     } else if(map.getCell(i,j).getTerrain() == Cell::mountain){ 
      scene->addRect(x,y,min_height_size,min_width_size); 
      scene->setPalette(Qt::blue); //but it didn't work 
      y += min_width_size; 
     } else if(map.getCell(i,j).getTerrain() == Cell::plain) { 
      scene->addRect(x,y,min_height_size,min_width_size); 
      scene->setPalette(Qt::yellow); //but it didn't work 
      y += min_width_size; 
     } 
     view->setDragMode(QGraphicsView::ScrollHandDrag); 
    } 
    x += min_height_size; 
} 
} 
+0

실제로, 배경이 아닌 직사각형의 색을 설정해야합니다. pls confirm. –

+0

시도 코드는 무엇입니까? –

답변

0

당신은 색상을 설정 setBrush() 기능을 사용할 수 있습니다.

QGraphicsRectItem *rect_item1 = scene->addRect(100, 100, 50, 50); 
rect_item1->setBrush(Qt::yellow); 
QGraphicsRectItem *rect_item2 = scene->addRect(200, 250, 50, 50); 
rect_item2->setBrush(QColor(100,50,200)); 
+0

대단히 고맙습니다. 작동합니다.))))) – Mary

+0

그 자리에 다른 QPixmap 개체를 설정하는 방법을 알려주시겠습니까? – Mary

+0

@Mary ['QGraphicsPixmapItem'] (http://qt-project.org/doc/qt-5.0/qtwidgets/qgraphicspixmapitem.html)을 참조하십시오. 'QGraphicsRectItem'을 부모로 설정하십시오. – thuga