Tôi có một phông chữ có một số trọng số phông chữ trong một gia đình (thêm ánh sáng, ánh sáng, thông thường, nửa trắng, đậm, đen). Đối với ví dụ này, tôi đang sử dụng Google Webfont Nguồn Sans Pro miễn phí, nhưng tôi đã có cùng một vấn đề với bất kỳ phông chữ nào có nhiều trọng số (chẳng hạn như Avenir Next, phông chữ hệ thống trong Mac OS 10.8). Trong biểu định kiểu Qt, nếu tôi chỉ định:Có thể chỉ định nhiều hơn các phiên bản "thông thường" và "in đậm" của phông chữ trong Biểu định kiểu Qt không?
QLabel
{
font-family: Source Sans Pro;
font-size: 24px;
}
Tôi nhận được kiểu chữ "Thông thường". Nếu tôi chỉ định:
QLabel
{
font-family: Source Sans Pro;
font-weight: bold;
font-size: 24px;
}
Tôi nhận được phiên bản chữ đậm của phông chữ. Tôi không thể tìm ra bất kỳ sự kết hợp nào sẽ mang lại cho tôi bất cứ điều gì khác hơn là thường xuyên hoặc Bold. Tôi đã thử đặt trọng lượng trực tiếp vào font-family (ví dụ: font-family: Source Sans Pro Light;), tôi đã thử sử dụng Light, Semibold, v.v. trong font-weight: specifier, tôi cũng đã thử sử dụng các số tương đương (Qt documentation cho biết chúng được coi là các giá trị từ 0 đến 99 thay vì đánh số CSS x00). Không có gì hiệu quả.
EDIT: Tôi vừa thử viết một chương trình nhanh để phụ trong các số từ 0 đến 999 cho thuộc tính trọng số phông chữ. Thật thú vị, tôi đã có thể nhận được "ánh sáng" nếu tôi đặt bất cứ thứ gì giữa 0 và 399. 400 đến 407 đã cho tôi "Thường xuyên", 408 đến 599 đã cho tôi ánh sáng một lần nữa, sau đó 600 hoặc cao hơn đã cho tôi semibold. Điều này có vẻ thực sự kỳ lạ, bởi vì bây giờ sử dụng số tôi có thể ít nhất là truy cập "ánh sáng" và "bán kết". Tôi vẫn không thể tìm thấy bất kỳ cách nào để có được trọng lượng "Extra Light" hoặc "Black".
Câu hỏi duy nhất của tôi là, điều này chỉ là không thể nếu không sử dụng mã tùy chỉnh? Tôi có thể lấy font chính xác tôi muốn bằng cách tạo ra một QFont như sau:
QFontDatabase db;
QFont = db.font("Source Sans Pro", "Semibold", 24);
Nhưng rõ ràng điều này có nghĩa là tôi không thể sử dụng stylesheets (hoặc tệ hơn, tôi phải viết phân tích cú pháp stylesheet riêng tôi hay quấn một Qt hiện hoặc một cái gì đó). Điều này có vẻ hơi khó tin rằng điều này là không thể với bảng định kiểu. Các phông chữ đa trọng lượng có kém hỗ trợ trong Qt không?
Hóa ra đây chỉ là vấn đề trong Mac OS X. Tôi có lẽ nên gửi báo cáo lỗi Qt. Nếu bạn chạy chính xác cùng một mã để chọn chính xác cùng một phông chữ TrueType trên Mac và Linux (cả hai sử dụng Qt 4.8.4), bạn sẽ có được kết quả khác nhau. Phiên bản Linux/X11 thực hiện những gì bạn mong đợi. – ScottG