【问题标题】:How can I make QGraphicsEllipseitem's border transparent?如何使 QGraphicsEllipseitem 的边框透明?
【发布时间】:2020-01-29 17:39:19
【问题描述】:

我正在尝试使用 C++ 作为核心和 Qt 作为 GUI 开发黑白棋。但是,我在用 QGraphics 画圆时遇到了一些麻烦。我正在尝试使下方图片中的圆圈透明,但边框没有变得透明。有什么选项可以让 QGraphicsEllipseItem 的边框透明吗?

QGraphicsScene *scene = new QGraphicsScene(ui->gv_main);
scene->setSceneRect(0, 0, 667, 667);
ui->gv_main->setScene(scene);
const int DIAMETER = 80;
auto circle = new QGraphicsEllipseItem(0, 0, DIAMETER, DIAMETER);
circle->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
circle->setBrush(Qt::black);
circle->setPos(2,2);
scene->addItem(circle);
auto circle2 = new QGraphicsEllipseItem(0, 0, DIAMETER, DIAMETER);
circle2->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
circle2->setBrush(Qt::transparent);
circle2->setPos(85,2);
scene->addItem(circle2);

【问题讨论】:

    标签: qt qgraphicsview qgraphicsscene qgraphicsitem qgraphicsellipseitem


    【解决方案1】:

    您不必使其透明,但可以通过将其设置为Qt::NoPen 和项目的QPen 来删除它:

    circle2->setPen(Qt::NoPen);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 2016-12-04
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多