2011-07-17 16 views
8

Làm cách nào để tôi có thể đổi kích thước QLabel ngay cả khi nó có nghĩa là cắt bớt văn bản chứa của nó? Tôi có một QLabel kéo dài toàn bộ không gian ngang của một Widget. Khi thiết lập văn bản của nó, tôi chắc chắn rằng nó được cắt ngắn chính xác, tức là nhận được FontMetrics và Width của nó và sử dụng metric.elidedText().Bật QLabel để thu nhỏ ngay cả khi nó cắt bớt văn bản

Nhưng khi người dùng thay đổi kích thước tiện ích con, nhãn không cho phép nó thu hẹp thêm nữa vì nó sẽ cắt bớt văn bản của nó.

Bất kỳ ý tưởng nào về cách giải quyết vấn đề này? Giải pháp đơn giản nhất mà tôi nghĩ là bằng cách nào đó nói cho QLabel luôn thu nhỏ và sau đó nắm bắt sự kiện thay đổi kích thước và định dạng văn bản chính xác - Tôi không biết làm cách nào để thực hiện phần đầu tiên (các chính sách kích thước khác nhau không có ích)

Trả lời

8

Mặc dù bạn đề cập rằng chính sách kích thước thiết lập không giúp được gì, hãy đặt chính sách kích thước ngang của QLabel thành QSizePolicy::Ignored phải thông báo cho trình quản lý bố cục có chứa để bỏ qua bất kỳ gợi ý kích thước tối thiểu nào từ nhãn. Một giải pháp thay thế là đặt kích thước ngang tối thiểu của QLabel thành giá trị khác 0, chẳng hạn như 1. Nếu không có giá trị nào trong số này hoạt động thì có điều gì đó khác gây trở ngại.

+0

Lạ lùng Tôi đã thử bỏ qua và trong khi nó cho phép tôi thu nhỏ tiện ích, nó dẫn đến hình dạng đồ họa lạ bởi vì tiện ích không còn lấp đầy không gian ngang hoàn toàn (mà tôi đã hoàn toàn quên mất khi tôi đăng nó) xin lỗi vì điều đó!). Tôi chỉ thử nó một lần nữa và .. nó hoạt động - bằng tiếng Đức, chúng tôi sẽ nói "Vorführeffekt" với điều đó;) 1 và chấp nhận – Voo

+1

Tôi rất thích tìm kiếm từ đó lên :) –

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