2011-12-20 27 views
5

Tôi đang in một số ký tự UTF-8 ưa thích, tức là mũi tên phải 0x2192 và sét 0x21AF, sang QTextEdit. Điều này hoạt động tốt trên một hệ điều hành hiện đại như Ubuntu nhưng không thành công, ví dụ: Windows XP, vì các phông chữ dường như không hỗ trợ các ký tự UTF-8 đó. Thay vào đó, các hình vuông nhỏ giữ chỗ khét tiếng được vẽ ra.Xác định xem QFont có hỗ trợ một ký tự UTF-8 nào đó

Có cách nào để tìm hiểu xem phông chữ hiện tại của một cá thể QFont có hỗ trợ ký tự nhất định không, vì vậy tôi có thể quay lại các ký tự đơn giản như "->" cho mũi tên phải?

Tôi đã phát hiện ra rằng Qt 4.8 có lớp QRawFont, thực sự có phương thức QRawFont :: supportsCharacter() thực hiện chính xác những gì tôi muốn nhưng tôi không thể sử dụng 4.8 ngay bây giờ, tôi đang sử dụng 4.6 hoặc 4.7 tốt nhất. Tôi đã xem xét việc thực hiện, và họ gọi QFontEngine :: canRender(). Tuy nhiên, QFontEngine có vẻ là một lớp không thể truy cập từ bên ngoài. Các lớp âm thanh tương tự duy nhất tôi có thể tìm thấy trong 4.7 là QFontEngineInfo và QFontEnginePlugin, cả hai dường như không cung cấp bất cứ điều gì hữu ích trong trường hợp của tôi.

Trả lời

5

canRender cũng được gọi là QFontMetrics::inFont(QChar).

+0

Vâng, đúng vậy! Cảm ơn! Tôi rõ ràng đã có một chút bị mất trong đó phông chữ liên quan đến lớp học-rừng, vì vậy tôi bỏ lỡ rằng phương pháp không dễ thấy :). – DerManu

Các vấn đề liên quan