Tôi muốn thêm phông chữ tùy chỉnh vào ứng dụng của mình và tôi đã thêm vào tệp tài nguyên của mình.Cách nhúng phông chữ tùy chỉnh trong ứng dụng của tôi
Và mã của tôi như sau:
int id = QFontDatabase::addApplicationFont(":/fonts/ae_AlMateen.ttf");
QMessageBox::information(this,"Message",QString::number(id));
Ngoài ra nội dung của .qrc
tập tin.
<RCC>
<qresource prefix="/fonts">
<file alias="ae_AlMateen">ae_AlMateen.ttf</file>
</qresource>
</RCC>
Nhưng vấn đề là các addApplicationFont
luôn trả -1
.
Lưu ý rằng khi thay đổi :/fonts/ae_AlMateen.ttf
thành đường dẫn trực tiếp cũ: C://ae_AlMateen.ttf
hoạt động tốt.
Tôi muốn tệp phông chữ được tích hợp với tệp thi hành ứng dụng của mình, để làm cho ứng dụng không cần đính kèm tệp phông chữ với tệp đó.
Mã đúng và hoạt động. Lỗi không nằm trong phần bạn đang hiển thị cho chúng tôi. Bạn có thể tạo một QDir (":/fonts") và xem whats trong thư mục ảo này. Hoặc ttf của bạn bị hỏng. – Greenflow
@Greenflow: Cảm ơn, về phần này "Hoặc ttf của bạn bị hỏng". Tôi đã được cập nhật một phần trong câu hỏi của mình. Đối với 'QDir (":/fonts ")' Tôi không hiểu tôi phải làm gì với nó. –
":/fonts" là một hệ thống tệp ảo. Bạn có thể tạo một đối tượng QDir với nó giống như với bất kỳ thư mục nào khác. Sau đó, bạn có thể xem những gì chương trình của bạn thực sự thấy trong thư mục này, ví dụ: với QDir :: entryList. Nhưng như tôi thấy nó bây giờ, xây dựng của bạn không tìm thấy * .ttf của bạn. Trừ khi cây nguồn của bạn trực tiếp trong c: – Greenflow