QGraphicsItem не отображается как HiDPI

В приложении отображения Qt ( QGIS) холст карты является QGraphicsItem. Мы не используем OpenGL, каждый элемент отображается с помощью QPainter.

Наше приложение правильно отображается на HiDPI за исключением холста карты.

Посмотрите на пиксельную линию на карте:

Что я посмотрел:

  • Qt doc о HiDPI. Уже делаю то, что спрашивают (info.plist на mac, используя подпись с плавающей точкой для методов живописи)
  • отчет об ошибке в Qt, но, похоже, он связан с OpenGL и кешем элементов, который мы не используем.

С художником мы используем QPainter::Antialiasing,

Здесь нелегко разместить код, но вот ссылка на источник для рендеринга строк, например.

Я пытался сделать минимальный пример воспроизведения, но я все еще терплю неудачу здесь.

Подсказка заключается в том, что всякий раз, когда указатель мыши находится над холстом карты, его размер удваивается (он слишком велик). Я бы сказал, что примерно в 2 раза больше, что является соотношением пикселей моего устройства.

Я не уверен, что это проблема только для Mac (кажется, что это происходит и в Linux, но не в Windows). В документации Qt о масштабируемости говорится, что Mac справляется с этим по- разному.

Я действительно не знаю, что искать, и я надеюсь на некоторые подсказки.

0 ответов

Другие вопросы по тегам