Я использую Qt 6.5 в Windows 10, растровые изображения в моем приложении масштабируются по-разному в зависимости от текущего разрешения.
Минимально воспроизводимый пример:
Масштаб Windows 100 %

масштаб 125 %

масштаб 150 %

Метка класса: public QLabel { Q_OBJECT публика: Значок QIcon; Label(QWidget* родительский = nullptr): QLabel(parent){} void PaintEvent (событие QPaintEvent*) переопределить { Художник QPainter(это); Painter.setRenderHint(QPainter::Сглаживание); Painter.setRenderHint(QPainter::SmoothPixmapTransform); icon.paint(&painter, rect(), Qt::AlignCenter, QIcon::Normal, QIcon::On); } }; встроенный QPixmap setRoundness (растровое изображение QPixmap, int округлость) { Путь QPainterPath; qDebug()
QPixmap roundedPixmap = setRoundness(icon.pixmap(QSize(55, 55)), 50); Метка* метка = новая метка; метка-> значок = roundedPixmap; QLabel* label_2 = новый QLabel; label_2->setPixmap(roundedPixmap); QWidget* виджет = новый QWidget; QHBoxLayout* hLayout = новый QHBoxLayout(виджет); hLayout->addWidget(метка); hLayout->addWidget(label_2); hLayout->setContentsMargins(0, 0, 0, 0); hLayout->setSpacing(30); setCentralWidget (виджет); setContentsMargins(32, 32, 32, 32); возвращаться; } } Это проблема в QPixmap, а не в QPaintEvent, потому что когда я сохраняю roundedPixmap.save("test_2.png"); это вот что я получаю:(DPI 150%)

(DPI100%)

Как решить эту проблему с разрешением?
Мобильная версия