Những gì tôi đang cố gắng làm là hiển thị qwidget trên một cửa sổ khác (bằng cách sử dụng QPainter thủ công)Qt: Làm thế nào để ép buộc một widget ẩn để tính toán bố trí của nó?
Tôi có một QWidget (w) với bố trí và một nhóm điều khiển con. w bị ẩn. Cho đến khi w được hiển thị, không có tính toán bố cục nào xảy ra, được mong đợi.
Khi tôi gọi w->render(painter, w->mapToGlobal(QPoint(0,0))
, tôi nhận được một loạt các điều khiển chồng chéo nhau.
w->layout()->activate();w->layout()->update()
dường như không làm gì cả.
Có cách nào để buộc bố cục xảy ra mà không hiển thị w không?
Cảm ơn bạn quan tâm, hoạt động hoàn hảo! – Chris
Lưu ý rằng một tiện ích sẽ chỉ hiển thị nếu tất cả tổ tiên của nó cũng hiển thị. Nếu đây không phải là trường hợp, gọi 'show()' có thể không giải quyết được vấn đề ở đây. Xem câu trả lời của tôi dưới đây cho một cách tiếp cận khác nhau mà nên luôn luôn làm việc. – emkey08
@MathiasKunter Tuy nhiên, cần lưu ý rằng các sự kiện vẽ hoàn toàn chảy vào tiện ích "hiển thị" (nhưng không hiển thị trên màn hình), nếu bạn nói, hãy cho chuột nhấp chuột vào nó (không giống với tiện ích con không có dấu ngoặc đơn)! – mlvljr