Меняя устройство, вы фактически изменяете плотность пикселей экрана.Если у вас устройство с дисплеем низкого качества, оно будет иметь меньшее количество пикселей на дюйм или пикселей на сантиметр, чем устройство с дисплеем высокого качества.
Понимая это, мы легко можем разработать метод масштабирования нашего контента в соответствии сплотность пикселей.Например, в моем случае у меня есть ноутбук, на котором я использую Qt Creator.Он имеет плотность пикселей 4. Но мой телефон Android имеет высокое качество, плотность которого составляет 16 (в 4 раза больше, чем у моего ноутбука).Это означает, что если элемент имеет ширину «X» и высоту «Y» при отображении на моем ноутбуке, на моем телефоне он будет иметь ширину «X» / 4 и высоту «Y» / 4.Таким образом, я должен масштабировать высоту и ширину на 4.
Теперь, как это реализовать?В QML у нас есть свойство "pixelDensity" в объекте Screen, которое даст вам плотность пикселей экрана, на котором вы запускаете приложение.Разделив это на плотность экрана, на котором вы тестировали приложение, вы получите коэффициент масштабирования.Так что теперь вам не нужно беспокоиться о других устройствах, у вас есть только плотность пикселей экрана, над которым вы сейчас работаете.
Следующий код прекрасно работает для меня.
property int default_pix_density: 4 //pixel density of my current screen
property int scale_factor: Screen.pixelDensity/default_pix_density
Rectangle
{
width: 50*scale_factor
height: 20*scale_factor
}