Не удается получить QGraphicsEllipseItem () для отображения - PullRequest
0 голосов
/ 29 июня 2018

Кажется, я не могу получить QGraphicsEllipseItem для отображения в моем представлении. Я пытаюсь использовать его в сочетании с QGraphicsLineItem:

# Instantiate the line object:
self.profileLine = QGraphicsLineItem()
self.profileLine.setPen(QPen(Qt.yellow, 1.0))
self.profileLine.setLine(self.StartX, self.StartY, self.StopX, self.StopY)
self.scene.addItem(self.profileLine)

# Instantiate the circle:
self.profileStopHandle = QGraphicsEllipseItem()
self.profileStopHandle.setPen(QPen(Qt.yellow, 1.0))
self.profileStopHandle.setRect(self.StopX, self.StopY, 50, 50)
self.scene.addItem(self.profileStopHandle)

Позже, в моем событии перемещения мыши, я определяю текущие координаты мыши, назначаю их StopX / StopY и перерисовываю линию от начальной точки до новой точки остановки, а также рисую эллипс вокруг новой точки остановки:

self.profileLine.setLine(self.StartX, self.StartY, self.StopX, self.StopY)
self.profileStopHandle.setPos(self.StopX, self.StopY)

Линия хорошо видна и ведет себя так, как и должна, но независимо от того, что я не могу заставить рисовать эллипс. Я знаю, что координаты точки, которые я передаю, правильные, потому что они совпадают с теми, которые я использую для линии. Эллипс просто никогда не появляется так, как если бы он никогда не создавался. Что я здесь не так делаю (должно быть что-то очень простое)? Заранее спасибо.

1 Ответ

0 голосов
/ 29 июня 2018

Проблема была в Z-значении (любительская ошибка). Я вывел эллипс на передний план, и теперь он виден:

self.profileStopHandle.setZValue(self.sceneImage.zValue() + 1.0)
...