Как сделать границу QGraphicsEllipseitem прозрачной? - PullRequest
2 голосов
/ 29 января 2020

Я пытаюсь разработать Reversi, используя 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);

enter image description here

1 Ответ

2 голосов
/ 29 января 2020

Вам не нужно делать его прозрачным, но удалите его, установив его как Qt::NoPen с QPen элемента:

circle2->setPen(Qt::NoPen);
...