Sử dụng khung Qt, làm cách nào để đo chiều rộng (tính bằng pixel) của một đoạn văn bản được hiển thị bằng phông chữ/kiểu đã cho?Đo chiều rộng văn bản trong Qt
35
A
Trả lời
60
Bạn có thể sử dụng QFontMetrics lớp - xem phương thức width() có thể cung cấp cho bạn chiều rộng của một QString nhất định.
QFont myFont(fontName, fontSize);;
QString str("I wonder how wide this is?");
QFontMetrics fm(myFont);
int width=fm.width(str);
6
hơi muộn, nhưng có lẽ nó giúp cho người
trong paintEvent
QString text("text");
QFontMetrics fm = painter.fontMetrics();
int width = fm.width(text);
Chears Alexander
5
Như một sự bổ sung cho câu trả lời của @ Paul, tôi thấy rằng khi vẽ văn bản (Qt4.8 trên Linux), chiều rộng của một văn bản thực sự được vẽ so với chiều rộng của những gì trả về QFontMetrics::boundingRect
thường bị tắt. Trong trường hợp của tôi, bức tranh thường quá rộng.
Nếu bạn muốn kết quả chính xác khi vẽ văn bản (ví dụ như hình chữ nhật kích thước bạn vẽ xung quanh văn bản), hãy sử dụng trực tiếp các chức năng boundingRect
được cung cấp trực tiếp bởi QPainter
.
Các vấn đề liên quan
- 1. Đo văn bản trong WPF
- 2. làm cách nào để đo chiều rộng văn bản trong các động từ?
- 3. Nhận chiều rộng văn bản trong MFC
- 4. Android: Đo chiều cao văn bản trên Canvas
- 5. định dạng chiều rộng văn bản vim
- 6. Khóa chiều rộng của hộp văn bản
- 7. Cách giới hạn chiều rộng văn bản
- 8. Đo chiều rộng pixel của một chuỗi
- 9. Cách lấy chiều rộng/chiều cao của văn bản
- 10. Chiều rộng của input type = yếu tố văn bản
- 11. Đo khung giới hạn của nút văn bản trong Javascript
- 12. đo văn bản trên canvas thu nhỏ
- 13. Giới hạn chiều rộng đường viền thành chiều rộng văn bản trong một phần tử khối
- 14. Tính chiều rộng văn bản trong ActionScript và Flex
- 15. Chiều rộng đầu vào văn bản lạ trong jQuery Mobile
- 16. Đặt chiều rộng cột văn bản biến trong printf
- 17. Đo chiều rộng của một AttributedString trong J2ME
- 18. SDK iPhone: Làm cách nào để đo chiều rộng và chiều cao của chuỗi bằng Quartz?
- 19. Kiểu hộp văn bản mặc định và chiều rộng
- 20. Chiều rộng tối đa động cho văn bản
- 21. Sự cố chiều rộng hộp văn bản - ASP.NET
- 22. jQuery: đặt chiều rộng của vùng văn bản?
- 23. SVG nhận chiều rộng phần tử văn bản
- 24. Lớp văn bản Qml (chiều rộng tối đa)
- 25. Chiều rộng hộp văn bản có thể chỉnh sửa
- 26. Tính chiều rộng văn bản với PHP GD
- 27. iPhone - Điều chỉnh chiều rộng UILabel theo văn bản
- 28. 'Chiều rộng' có áp dụng cho văn bản không?
- 29. Qt QProgressBar - căn chỉnh văn bản
- 30. Đo chiều dài của chuỗi chứa ký tự rộng
Tìm thấy tình huống tương tự trên OS X với Qt 5.5.1. Chiều cao đã tắt. Tôi đã sử dụng một QFontMetrics độc lập nhưng cần thiết để đặt phông chữ trên họa sĩ và sử dụng trực tiếp boundingRect của nó để đo chính xác văn bản. – kainjow