C ++ Qt QGraphicsWidget背景

时间:2014-04-25 10:46:16

标签: c++ qt 2d

我正在制作简单的2D游戏(迷宫),我正在使用QGraphicsView,QGraphicsScene和QGraphicsGridLayout将图块管理成网格。

地图用字符串表示(#是墙,。是空字段......)。

所以我通过这个字符串,用pixmap创建标签并将它们插入网格布局:

QLabel *label;    
QGraphicsProxyWidget *widget;
...
for (..) {
  for (..) {
     label = new QLabel();
     label->setPixmap(QPixmap(":/new/images/img/w.png"));
     widget = scene->addWidget(label);
     layout->addItem(widget, i, j);
  }
}

其中场景是QGraphicsScene,布局是QGraphicsGridLayout。它工作正常,但我有pixmaps透明背景的问题。每个像素图由一些形状和透明背景组成。当我尝试在主窗口小部件(QDialog窗口)上显示标签时,一切正常。但插入场景后,其背景为灰色。

我尝试了没有网格图层(只有图形视图和场景),但结果相同。

有没有办法让场景的项目背景透明?

1 个答案:

答案 0 :(得分:0)

您可以将标签的样式表设置为透明背景且无边框:

label->setStyleSheet("background: transparent; border: none");