2011-10-14 29 views
6

Tôi có tệp QML chứa bố cục các mục QML và bây giờ tôi muốn một trong các mục đó trở thành QGLWidget. tức là tôi muốn kết xuất với một mục QML cụ thể.Hiển thị OpenGL cho một mục QML

Có ai biết cách thực hiện việc này không?

Trả lời

3

Cách đơn giản nhất tôi cho rằng nó cung cấp QML thành phần tùy chỉnh mới được triển khai trong C++. Tôi không thể tìm thấy bất cứ điều gì đã sẵn sàng.

Bạn có thể phân lớp QDeclarativeItem và triển khai mã OpenGL của bạn trong chức năng sơn sau khi sử dụng chức năng QPainter::beginNative(). Sau đó, bạn có thể "xuất" mục tùy chỉnh mới của mình thành QML this way. Điều này khá đơn giản và nên làm việc, nhưng bạn sẽ phải thiết lập các quan sát của bạn QDeclarativeView là một QGLWidget, một cái gì đó như thế này:

QDeclarativeView view; 
// This is needed because OpenGL viewport doesn't support partial updates. 
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdateMode); 
view.setViewport(new QGLWidget); 

hoặc bạn sẽ phải sử dụng hệ thống đồ họa OpenGL cho toàn bộ ứng dụng. Một cách khác là sử dụng QML/3D.

This thread sẽ cung cấp cho bạn một số thông tin khác.

+0

Liên kết tới tài liệu QML/3D đã thay đổi, tôi đã cập nhật nó. –

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