原创 Qt之 按鈕形狀不規則 ---通過貼圖實現

在應用開發中,有時候爲了美觀會在UI界面中增加不規則的按鈕 Qt實現不規則按鈕只需要一個函數就能搞定:setMask() 以QToolButton 爲例: 實現的主要代碼如下 QPixmap tmpPixmap; tmp

原创 QT樣式表設置 之 QComboBox下拉框樣式

/* 未下拉時,QComboBox的樣式 */ QComboBox { border: 1px solid gray; /* 邊框 */ border-radius: 3px; /* 圓角 */ padd

原创 Qt 樣式設置之 QCheckBox 樣式表

QCheckBox {     color:red;     background-color:rgb(101,101,101); } QCheckBox::indicator {     /* 選擇框尺寸 */     width:13

原创 QT樣式設置之 QSpinBox樣式中 按鈕箭頭變換位置

網上介紹qss的的文章真心的很少,搜遍的國內外網站,找到了qspinbox,qtimeedit等控件的stylesheet樣式方法。 原本的qspinbox和qtimeedit等控件樣式如下圖: 加和減的箭頭都放在了右側,而且比較小,點

原创 OPenGL 學習筆記之 Model 模型知識

現在是時候接觸Assimp並創建實際的加載和轉換代碼了。這個教程的目標是創建另一個類來完整地表示一個模型,或者說是包含多個網格,甚至是多個物體的模型。一個包含木製陽臺、塔樓、甚至游泳池的房子可能仍會被加載爲一個模型。我們會使用Assimp

原创 OPenGL 學習筆記之 Mesh 網格知識

通過使用Assimp,我們可以加載不同的模型到程序中,但是載入後它們都被儲存爲Assimp的數據結構。我們最終仍要將這些數據轉換爲OpenGL能夠理解的格式,這樣才能渲染這個物體。我們從上一節中學到,網格(Mesh)代表的是單個的可繪製實

原创 Qt OPenGL 入門教程之一 基於QOpenGLWidget 繪點

前言: OpenGl 是一個跨平臺的用來渲染3D圖形的標註API,Qt 對OpenGL提供了強大的支持。Qt4時代的Qt OpenGl 模塊在Qt5中已經不再建議使用,OpenGL相關的類被移到了Qt GUI模塊。Qt Widgets 模

原创 Qt 應用之 MinGW編譯安裝GLEW

ps:在qt 下移植opengl的 glew 庫的時候遇到glew 鏈接報錯,需要自己用mingw 編譯 glew 步驟: 1. 下載源碼: http://glew.sourceforge.net/index.html  http://w

原创 Qt OPenGL 入門教程之六 基於QOpenGLWidget 3D立方體紋理貼圖

紋理貼圖是 opengl 極爲重要的一個知識,相關知識點在此暫時不做介紹,這裏只給出一個可運行的示例, 我對demo進行了一定的改動,其中在構造函數定義了一個PROGRAM_2D的宏,定義的時候爲一個2個面的紋理貼圖,註釋掉該宏則會實現一

原创 OPenGL 學習筆記之 VAO VBO EBO 以及SHADER 並使用其繪製三角形

譯註 在學習此節之前,建議將這三個單詞先記下來: 頂點數組對象:Vertex Array Object,VAO 頂點緩衝對象:Vertex Buffer Object,VBO 索引緩衝對象:Element Buffer Object,E

原创 Qt OPenGL 入門教程之四 基於QOpenGLWidget 頂點着色

前面繪製的圖片還是純白色的,並且看上去還是2D的正方形,這一節將爲圖形每個頂點着色,然後添加其他的面來形成3D效果。 //myopenglwidget.h #ifndef MYOPENGLWIDGET_H #define MYOPENG

原创 Qt OPenGL 入門教程之三 基於QOpenGLWidget 使用緩存繪製多邊形

上一教程我們應用glVertexAttribPointer繪製多邊形,這一節,我們通過使用緩存 基礎知識: 和上一節的區別, //myopenglwidget.h #ifndef MYOPENGLWIDGET_H #define MYO

原创 Qt OPenGL 入門教程之五 基於QOpenGLWidget 實現3D效果

上一節爲白色的正方形通過頂點繪製了顏色,這一小節修改頂點數組,實現3D效果 //myopenglwidget.h #ifndef MYOPENGLWIDGET_H #define MYOPENGLWIDGET_H #include <

原创 OpenGl 之學習筆記 glNormal3f 函數理解和光源相關知識總結

3. glNormal3f 函數 void glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ) void glNormal3fv( const GLfloat *v ) 但是第一個的參數就是浮

原创 OpenGl 之學習筆記

1.glMatrixMode()函數理解 glMatrixMode()函數的參數,這個函數其實就是對接下來要做什麼進行一下聲明,也就是在要做下一步之前告訴計算機我要對“什麼”進行操作了,這個“什麼”在glMatrixMode的“()”裏的