2013-07-17 28 views

Trả lời

14

Khi bạn gọi updateGL() trên tiện ích của mình (hoặc update()) hoặc chỉ Qt quyết định vẽ lại tiện ích của bạn. Lý do tại sao Qt có thể chọn để yêu cầu một vẽ lại bao gồm:

  • phụ tùng của bạn bị thay đổi kích cỡ
  • widget của bạn được ẩn và hiển thị một lần nữa
  • widget của bạn được giảm thiểu và sau đó phục hồi
  • cái gì khác được đặt trong trước widget của bạn và sau đó chuyển đi
  • the Moon là trong quý III
  • một con bướm ở xa đã đập cánh
  • ...

Tóm lại, bạn có rất ít quyền kiểm soát về khi Qt yêu cầu gửi lại. Chỉ cần chắc chắn sơn nhanh! :-)

+0

Thông tin miễn phí: 'paintGL()' thậm chí không được gọi là "ngay lập tức" khi bạn gọi 'updateGL()'. Thay vào đó, Qt đợi và gọi nó sau này khi thích hợp, để các cuộc gọi liên tiếp của 'updateGL()' chỉ dẫn đến một lệnh gọi 'paintGL()'. – Boris

+0

Cảm ơn! Tôi không biết các hàm update() và updateGL(). Đây có phải là tất cả từ kinh nghiệm? –

+0

Bạn có nghĩa là, nếu đó là một danh sách đầy đủ khi Qt yêu cầu repaints, ngoài những người dùng tạo ra (tức là gọi 'update()')? – peppe

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