Hi, All!
Накропал тут небольшое приложение для мобильных устройств, и вижу странное.
Вызов QGuiApplication::primaryScreen()->availableSize() на платформе Андроид возвращает адекватные цифры — реальный размер экрана за вычетом полоски статус бара.
А на iPhone 7 Plus, у которого экран 1920х1080, возвращается:
ScreenSize 320 568
VirtualSize 320 568
PixelRatio 3.000000
Что никак не бьется с реальными размерами. И даже PhysicalSize возвращается 60.807980 107.934165, что не соответствует реальности (у Андроида с размерами все точно, штангенциркулем проверял).
Что это? И как получить реальные размеры экрана в пикселях? И второй вопрос — как правильно рисовать QIcon на дисплее с ретиной? Сейчас я рисую так:
QPixmap pix = Icon.pixmap(QSize(...), ...);
Painter.drawPixmap(... , pix);
При этом получается, что один пиксел иконки рисуется как 3х3 на экране, хотя у меня есть иконка и с большм разрешением; но если брать ее, то она рисуется также с умножением на 3 и получается огромной. Можно ли эту ретину как-нибудь отключить нафиг, мне без нее было бы проще.