我正在制作简单的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窗口)上显示标签时,一切正常。但插入场景后,其背景为灰色。
我尝试了没有网格图层(只有图形视图和场景),但结果相同。
有没有办法让场景的项目背景透明?
答案 0 :(得分:0)
您可以将标签的样式表设置为透明背景且无边框:
label->setStyleSheet("background: transparent; border: none");