[英]Moving from QGLWidget to QWindow
我有一些使用Qt 4的代碼。我想將其遷移到Qt 5並切換到QOpenGL。 我不明白來自void paintGL()
和void initializeGL()
需要放在QWindow中的何處。 有人可以幫我舉個例子嗎?
我創建了一個在OpenGL中使用QWindow的簡單示例。
為了簡化OpenGL開發,我創建了一個抽象類GLWindow,該類包含虛擬函數initializeGL()
, paintGL()
和resizeGL(int w, int h)
。 我相信源代碼顯示了舊樣式和新樣式之間的關系。
此處提供示例:
https://github.com/mortennobel/QtOpenGLChapter/tree/master/OpenGL3xAlt
Qt 至少有一個示例(覆蓋) ,將小部件放在OpenGL場景上。 通過觀察,看來最簡單的方法是從QGLWidget
繼承而不是QWidget
並重寫適當的虛函數以進行初始化和繪制。
用於使用QWindow用OpenGL標准的例子是hellowindow在qtbase /示例/ OpenGL的。
沒有直接替換initializeGL和paintGL。 相反,您可以執行以下操作:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.