Qt入門 OpenGL應用(二)

2021-08-16 14:30:19 字數 1624 閱讀 5033

開啟qt creater在歡迎介面尋找示例,搜尋opengl,可以看見很多示例程式,開啟慢慢看!

或許你在看見本篇部落格之前,在網上搜尋過類似的文章,有些裡面使用的是qglwidget作為自己寫的子類的基類,有些裡面使用的是qopenglwidget作為自己寫的子類的基類。

參考鏈結

一句話來說,在qt4中,qtopengl的各個介面進一步封裝為了qgl***,在qt5中,qtopengl的各個介面封裝為了qopengl***

一般情況下都使用qopenglwidget作為視窗的基類,然後繼承這些基類的介面:

-initializegl

-resizegl

-paintgl

自己寫的稍微簡單的qt應用是沒有使用ui檔案的,是自己做qgridlayout

比如下圖的qt應用中:

分為兩個大的部分qmenu和qwidget,見兩個紅框:

- qmenu

- qwidget

在qwidget中,又可以分為八個部分,見綠框包括的八個元件:

- qlabel

- qlabel

- qpushbutton

- zwidget

- zwidget

- zwidget

- qpushbutton

- qslider

zwidget是渲染opengl的視窗,是本次討論的重點。

zwidget類繼承自qopenglwidget類,和qopenglfunctions類。

class zwidget :public qopenglwidget, protected qopenglfunctions

qopenglfunctions類中封裝了各樣的opengl介面,qopenglwidget類中有三個重要的虛函式:

virtual

void initializegl();

virtual

void resizegl(int w, int h);

virtual

void paintgl();

我們只需要在自己的zwidget類中過載這三個重要的虛函式,就可以達到繪製opengl的目的。

opengl入門(ubuntu版)(二)

在正式介紹opengl函式前先說一些基礎知識。在使用opengl之前,我們要明白乙個什麼是視窗,什麼是視口。這裡給乙個不太準確的定義,視窗的大小表示全部可以用來畫圖的範圍,而視口的大小表示當前允許你畫圖的範圍。下面是乙個小例子,雖然還沒有說明opengl具體函式的使用,這裡也先看乙個簡單的例子,說明...

QT學習篇 入門(二)

庫存訂單介面 1 包括序號 訂單 訂單名稱 產品 產品型別 計畫加工數量 最晚完工日期。2 model增加臨時map,用於儲存庫存訂單。3 後台計算完成後,會將庫存訂單推送給前台,彈出該介面,若是人工確認的話,則使用者可以在該介面進行編輯,確認後進行插單排程 若是自動的話,則自動進行插單排程。4 插...

OpenGL入門學習

include 太陽 地球和月亮 假設每個月都是30天 一年12個月,共是360天 static int day 200 day的變化 從0到359 void mydisplay void void myidle void int main int argc,char argv 3 關於垂直同步co...