텍스트 편집과 qicon을 하나의 창에 추가했습니다 (플로팅 편집이라고 함).
저는 2 개의 qicons를 가지고 있습니다 - 보통의 DPI (16 x 16 아이콘)와 2x 버전 (32 x 32)입니다.
이름은 정확합니다. icon.png 및 [email protected]와 같습니다.
내 아이콘에서 pixmap을 가져 와서 제 3 자 라이브러리로 가져와야합니다.
qicon을 직접 먹이지 않아 qpixmap이 내 qt 버전 (5.6.2)에서 dpi를 존중하지 않으므로 dpi를 기준으로 변환해야합니다.
여기 내 코드입니다 :
QIcon은 항상 2x dpi로 표시됩니다.
// ...
auto icon = QIcon(imageName);
auto availSizes = icon.availableSizes();
auto size = pFloatingEdit->window()->devicePixelRatio() == 1 ? availSizes.first() : availSizes.last();
auto pxm = icon.pixmap(size);
auto w = pxm.width();
auto h = pxm.height();
// ... <feeding to 3rd party>
문제 난 항상 32 만 크기 가변 점의 dpi의 해상도와 동일 w 및 h를 얻을 수 있으며 100 % dpi의 경우 × 16 (16)을 반환의 경우 32 X 32 200 %.
누구든지 그 문제를 도와 줄 수 있습니까?
부동 소수점을 비교하는 데'=='연산자를 사용하면 오류가 발생합니다. –
pFloatingEdit-> window() -> devicePixelRatio()는 int를 반환합니다. QPaintDevice에서 devicePixelRatio를 호출합니다. –
픽셀 비율이 다른 두 대의 모니터가 있습니까? (하나의 망막과 하나의 망막이 아닌?) – fbucek