Forum: Diğer Konular RSS
Qt'da Screen.pixelDensity özelliği ve nesneleri cihaz boyutuna göre ayarlama
İbrahim #1
Üye Eki 2015 tarihinden beri · 186 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Qt'da Screen.pixelDensity özelliği ve nesneleri cihaz boyutuna göre ayarlama
Selamün Aleyküm;

Qt'da (QML) şu özellik var: http://doc.qt.io/qt-5/qml-qtquick-window-screen.html#pixel…
Tanımında şöyle diyor:
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):
[Resim: https://s9.postimg.org/v95mw7v1r/image.png]
Başka bir cihazda şöyle gözüküyor:
[Resim: 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.
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4644 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
kerdemdemir #3
Üye Eyl 2013 tarihinden beri · 168 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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 mesaj kerdemdemir tarafından değiştirildi; zaman: 2018-02-16, 01:05.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2018-02-24, 09:54:58 (UTC -08:00)