QT

2013-12-16 22 views
5

görüntü ekranının DPI'sini alma QT'de ekranın DPI değerini almam gerekiyor.QT

#include <QScreen> 

...... 
...... 
QScreen *srn = QApplication::screens().at(0); 
qreal dotsPerInch = (qreal)srn->logicalDotsPerInch(); 

Ama aynı kod QT 4.x sürümünde hata atıyor: Aşağıdaki kullanarak QT 5.0 almak mümkün. Projem QT 4.x sürümünde geliştirildi. Bu yüzden yukarıdaki kodun QT 4.x sürümündeki eşdeğerine ihtiyacım var.

cevap

2

Bu bir Qt5 eklentisi olduğunu düşünüyorum. Qt4 veya daha eski sürümler için (bence 3'te desteklendiğini düşünüyorum ... ama hatırlayamıyorum) benzer bilgileri almak için QPaintDevice'i kullanabilirsiniz, burada yapmanız gerekenlere bağlı olarak size yararlı olacak işlevler şunlardır:

#include <QPaintDevice> 
... 

QPaintDevice paint; 
int dpiX = paint.logicalDpiX(); 
int dpiY = paint.logicalDpiY(); 
int width = paint.widthMM(); 
int height = paint.heightMM(); 

Not: Bu bir uygulama değil, yalnızca örnek işlev çağrıları. Qt 4.8 olarak

+0

'Sonuçların özet sınıfını belirleyemiyor' hatası. – Anton

+1

@AntonTugolukov Not: 'Bu bir uygulama değil, sadece örnek işlev çağrılarıdır :) –

1

bu hileyi yapmak görünmektedir:

#include <QDesktopWidget> 

... 
int dpiX = qApp->desktop()->logicalDpiX(); 
... 
3

Qt5 bilgi almanın diğer bir yolu:
QWidget (QWidget onları miras physicalDpiX, physicalDpiY, logicalDpiY vesaire ...
içerirler . QPaintDevice)
(OP Qt4 söylemiştin, ama Qt5 şu anda geliştirme aşamasındadır)


Öyküsü:.
Aynı konuyla karşı karşıya kaldım.
@code_fodder yanıtından sonra (tamamlanmış olsa da yine de krediyi hak ediyor). QPaintDevice'den bahsedilen
, ilgili yöntemleri içerir. fark içinde, daha üzerinde okuduktan sonra

,
QWidget QObject ve QPaintDevice devralır ve ben görünce işte bu !.

+0

Bu ekran için görüntülenen metrikleri döndürür, herhangi bir pencere öğesi şu anda oluşturulmaktadır. Soru, bir ** spesifik ** ekranın gösterim metnini sormaktır. Bu cevap, bu problemi ele almıyor. – IInspectable