2015-08-31 8 views
5

पर क्यूटी उच्च डीपीआई समर्थन दस्तावेज के अनुसार यहां http://doc.qt.io/qt-5/highdpi.html क्यूटी 5.4+ उच्च डीपीआई समर्थन प्रस्तुत करता है। हालांकि, या तो मुझे कुछ मौलिक याद आ रही है या वर्तमान समर्थन अभी भी शुरुआती चरणों में है। मैं एक नया नया एप्लीकेशन लिख रहा हूं इसलिए मुझे जमीन से सीधे ऐसा करने का मौका मिला है। मैं समझता हूं कि मुझे निश्चित स्थिति आदि के बजाय लेआउट का उपयोग करना होगा, लेकिन वहां हमेशा ऐसे मामले होंगे जिनके लिए मुझे निर्दिष्ट करना होगा, उदाहरण के लिए नियंत्रण का न्यूनतम/अधिकतम आकार। मैं उन्हें संपादक में निर्दिष्ट कर सकता हूं, लेकिन ये डिवाइस पिक्सल हैं। इसलिए यदि मैं 150% डीपीआई का उपयोग करने के लिए अपनी विंडोज सेटिंग्स बदलता हूं तो संपादक में न्यूनतम/अधिकतम मान बहुत छोटा होगा। निस्संदेह मैं उस अनुपात को प्राप्त कर सकता हूं और कोड में सभी आवश्यक मानों को समायोजित कर सकता हूं, लेकिन अगर मुझे हाथ से सब कुछ करना है तो क्यूटी मुझे किस तरह का उच्च डीपीआई समर्थन देता है? मेरा मतलब है कि यह पूर्व QT 5.4 से अलग कैसे है?विंडोज

फिर एक दिलचस्प एक QT_DEVICE_PIXEL_RATIO पर्यावरण चर है। यह वही करता है जो मुझे चाहिए, यह एक कारक द्वारा संपादक में सेट सभी पिक्सल गुणा करता है। लेकिन यह एक पर्यावरण चर क्यों है और प्रति आवेदन सेटिंग नहीं है? यह केवल 2, 3 इत्यादि के पूर्णांक मानों का समर्थन क्यों करता है, क्योंकि हम जानते हैं कि विंडोज़ में 125, 150% इत्यादि जैसी सेटिंग्स हैं और यह स्वचालित रूप से विंडोज सेटिंग क्यों नहीं पढ़ सकता और खुद को उस मान पर सेट कर सकता है?

+0

आप http://bugreports.qt.io/ के तहत एक बग/सुझाव के रूप में इस प्रश्न को पोस्ट कर सकते हैं मिलेगा – Hyndrix

उत्तर

0

क्यूटी पूरी तरह से क्यूटी 5.6 से उच्च डीपीआई मॉनीटर का समर्थन करता है, विशेषता या पर्यावरण चर के माध्यम से (ओएस एक्स को छोड़कर जहां समर्थन मूल है)। विशेषता विधि के लिए, उपयोग करें:

#include <QApplication> 

int main(int argc, char *argv[]) 
{ 
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support 

    QApplication app(argc, argv); 
    return app.exec(); 
} 

या सिस्टम वातावरण चर सेट: Qt blog

0

मैं प्रतिक्रिया @Nicolas Holthaus से जवाब देना होगा पर

QT_AUTO_SCREEN_SCALE_FACTOR=1

अधिक जानकारी है कि जिस तरह से आप Qt :: AA_EnableHighDpiScaling सक्षम करते हैं, बिल्कुल सही नहीं हो सकता है। चूंकि यह उपयोगकर्ता डीपीआई सेटिंग को घेरेगा। उदाहरण के लिए। विंडोज डीपीआई सेटिंग 150% होनी चाहिए, परिणाम फ़ॉन्ट और आकार के लिए 200% होगा, जबकि 125% 100% होगा।

सही डीपीआई स्केलिंग करने का सही तरीका पर्यावरण परिवर्तनीय QT_SCALE_FACTOR सेट किया गया है। उसी उदाहरण के लिए, यदि डीपीआई सेटिंग 150% है, तो QT_SCALE_FACTOR को 1.5 मान के साथ सेट करें। फिर परिणाम फ़ॉन्ट और आकार में बिल्कुल 150% होगा।

क्यूटी आधिकारिक दस्तावेज http://doc.qt.io/qt-5/highdpi.html देखें और आप

QT_SCALE_FACTOR [numeric] defines a global scale factor for the whole application, including point sized fonts.