2011-12-20 3 views
5

का समर्थन करता है या नहीं, मैं कुछ फैंसी यूटीएफ -8 अक्षरों को प्रिंट कर रहा हूं, यानी दायां तीर 0x2192 और बिजली 0x21AF, QTextEdit पर प्रिंट कर रहा हूं। यह उबंटू जैसे आधुनिक ऑपरेटिंग सिस्टम पर बहुत अच्छा काम करता है लेकिन उदाहरण के लिए विफल रहता है विंडोज एक्सपी, क्योंकि फोंट उन यूटीएफ -8 अक्षरों का समर्थन नहीं करते हैं। इसके बजाए, कुख्यात छोटे प्लेसहोल्डर-वर्ग तैयार किए गए हैं।यह निर्धारित करें कि एक क्यूफॉन्ट एक निश्चित यूटीएफ -8 चरित्र

क्या यह पता लगाने का कोई तरीका है कि क्यूफॉन्ट इंस्टेंस का वर्तमान फ़ॉन्ट किसी दिए गए चरित्र का समर्थन करता है, इसलिए मैं सही तीर के लिए "->" जैसे सरल अक्षर पर वापस आ सकता हूं?

मुझे पता चला है कि क्यूटी 4.8 में एक QRawFont क्लास है, जिसमें वास्तव में एक QRawFont :: supportCharacter() विधि है जो वास्तव में मैं चाहता हूं, लेकिन मैं अभी 4.8 का उपयोग नहीं कर सकता, मैं 4.6 पर हूं या 4.7 सबसे अच्छा। मैंने कार्यान्वयन को देखा है, और वे QFontEngine :: canRender() को कॉल करते हैं। हालांकि, QFontEngine एक कक्षा है जो बाहर से उपलब्ध नहीं है। 4.7 में मिल सकने वाले एकमात्र समान ध्वनि वर्ग QFontEngineInfo और QFontEnginePlugin हैं, दोनों मेरे मामले में कुछ भी उपयोगी नहीं लगते हैं।

उत्तर

5

canRender को QFontMetrics::inFont(QChar) भी कहा जाता है।

+0

हाँ, यह है! धन्यवाद! मैं स्पष्ट रूप से उस फ़ॉन्ट से संबंधित वर्ग-जंगल में थोड़ा सा खो गया, इसलिए मुझे उस अस्पष्ट विधि को याद आया :)। – DerManu

संबंधित मुद्दे