Thread overview
Qt'da Screen.pixelDensity özelliği ve nesneleri cihaz boyutuna göre ayarlama
Feb 14, 2018
İbrahim
Feb 14, 2018
kerdemdemir
February 14, 2018

Selamün Aleyküm;

Qt'da (QML) şu özellik var: http://doc.qt.io/qt-5/qml-qtquick-window-screen.html#pixelDensity
Tanımında şöyle diyor:
Alıntı:

>

The number of physical pixels per millimeter.

Benim yapmak istediğim şey ise farklı boyutlarda ve çözünürlüklerde olan ekran çözünürlüklerine göre button, image, textbox vs. ve diğer tüm nesneleri cihazın boyutuna göre belirlemek istiyorum.
Mesela QML'de şöyle dediğimde:

Rectangle {
 width: 300
 height: 300
 color: 'red'
}

Bu kod 300x300 boyutunda basit kırmızı bir kare ekranda gösteriyor. Lakin bu farklı ekranlarda farklı gözüküyor. Mesela bu kutulardan Grid şeklinde birden fazla olduğu zaman 1366x768 ekranda şöyle gözüküyor (resimleri elimle çizdim, sadece örnek):
https://s9.postimg.org/v95mw7v1r/image.png
Başka bir cihazda şöyle gözüküyor:
https://s9.postimg.org/3lsxi4x0f/image.png

Fakat görüldüğü gibi gerek boyut olarak gerek de ekranın dışına taşma olarak ortaya çıkan sorunlar oluyor.
Android native tarafında DIP ve DP ile sorunları aşabiliyoruz ama Qt'da Screen.pixelDensity ile DP hesaplanabiliyormuş. DP hesabı için şöyle bir formül var: x * (screenDpi / 160), fakat burada ekranın DPI'si isteniyor ve 160 diye sabit bir değer var. Bu Screen.pixelDensity özelliği ile bu işlemleri nasıl yapabilirim? Ya da başka bir çözümü var mı?
Teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 15, 2018

Ben bizim is yerindeki koda baktim biraz burda bizim kod degisik boyutlardaki panellerde calisiyor. QButtonlari ayni oranda tutabilmek icin sunu kullanmislar:

                   const int pixmapWidth = pixmap.width() / pixmap.devicePixelRatio();
                   const int pixmapHeight = pixmap.height() / pixmap.devicePixelRatio();

Bu cagri(devicePixelRatio) QScreen ve QGui siniflarinda da var. BIlmiyorum isine yararmi.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 14, 2018

Deneyimim yok ama basit olması gerek. Şimdi araştırdığımda "logical pixel" diye bir kavram görüyorum. Qt belgelerinde geçiyor mu? Sanki hep "logical pixel" olarak kullanırsan ve pixelDensity'yi bir kere ayarlarsan herşey otomatik olarak halledilecekmiş gibi hissediliyor ama dediğim gibi, deneyim başka şey. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]