Qt4 QGraphicsView: как установить QPen в плавающее положение - PullRequest
0 голосов
/ 30 сентября 2010

У меня есть QGraphicsView с изображением и пользовательским курсором. Курсор состоит из двух QPen-DotLines. Точка X по оси X и точка D по оси Y. Пересечение двух линий - это положение курсора мыши. Проблема, когда я увеличиваю масштаб, крест больше не находится под позицией курсора мыши. Например, когда значения курсора мыши равны x = 1,4235 и y = 2,7732 тогда точечные линии устанавливаются в позиции x = 1 и y = 2. Но я хочу, чтобы точечные линии были в плавающей позиции (x = 1.4235 и y = 2.7732). Как мне это сделать.

Положение мыши, полученное с помощью

def mouseMoveEvent(self,event):
    ...
    ... self.grview.mapToScene(event.pos())
    ...

и точечные линии, которые я установил с помощью setPos (). Я думаю, setPos () конвертирует float в int. Но я не знаю, как обойтись. Надеюсь, у кого-то из вас есть полезная идея.

1 Ответ

0 голосов
/ 01 октября 2010

Я нашел проблему. Парень, который ранее реализовал часть кода, использовал «drawEllipse (int x, int y, int width, int height)», и это преобразует float в int. Поэтому единственное, что мне нужно было сделать, это заменить его на «drawEllipse (const QPointF & center, qreal rx, qreal ry)». Извините за беспокойство и спасибо.

...