原创 《QDebug 2020年6月》

一、Qt Widgets 問題交流 1.給 QTabBar::tab 設置樣式表字體後文字左右被剪切 在樣式表設置 QTabBar::tab 的字體後文字就不能完整顯示了,在 Qt Bug Tracker 可以看到 Qt4 就存在的問題,

原创 QComboBox下拉框給選項增加刪除按鈕

0.前言 給下拉框增加按鈕是常見的功能,如 QQ 賬號輸入框的下拉: 網上有不少 Qt 實現的例子,實現方式也很多,在參照了別人的思路後我也實現了選項帶按鈕的下拉框。中間遇到不少坑,最後效果也不完美。 1.實現過程 我選的是 QList

原创 QTableView自定義Model實現排序

排序是一個常用的功能,QTableView 也可以點擊表頭進行排序,相關接口: //允許點擊排序 ui->tableView->setSortingEnabled(true); //按第0列升序 ui->tableView->sort

原创 QSS自定義屬性

1.基本使用 (參見 Qt 文檔頁章節 Setting QObject Properties:https://doc.qt.io/qt-5/stylesheet-syntax.html) 從 Qt 4.3 及更高版本開始,可以使用 qpr

原创 QML粒子系統製作心形效果

說明: 雖然 5 月 20 號過了,還是來畫下心。這裏我使用 QML 的粒子系統來製作心形效果。 粒子模擬的核心是 ParticleSystem 控制共享時間線的。一個場景可以有多個粒子系統,每個粒子系統都有一個獨立的時間軸。使用 Emi

原创 《QDebug 2020年5月》

一、Qt Widgets 問題交流 1.打印浮點數,輸出小數精度不對 Qt 和 cout 一樣,浮點數輸出有效位是 6 ,如果整數有效位數大於等於 6 ,那麼就沒小數部分了。下圖爲 Qt 源碼的代碼片段: 測試如下: dou

原创 Qt使用QPainter繪製一個3D立方體

1.實現思路 (網上有另一篇類似的,不過他不是用的 Qt 自帶的矩陣運算類:https://blog.csdn.net/BIG_C_GOD/article/details/53285152) 實現思路有點類似使用 OpenGL 畫立方體,

原创 QML使用ShaderEffect繪製環形進度條

0.前言 之前用 Qt Widgets 的 QOpenGLWidget 類配合着色器寫了下環形進度條(https://blog.csdn.net/gongjianbo1992/article/details/106043023),現在用

原创 OpenGL width QtWidgets:練習之繪製2D環形進度條

(本文是LearnOpenGL的學習筆記,教程中文翻譯地址https://learnopengl-cn.github.io/) 1.實現思路 這裏主要涉及三個點:繪製圓環,繪製文字,動畫。 繪製圓環網上有些人是計算好圓邊的頂點後傳入的,我

原创 OpenGL width QtWidgets:基礎光照

(本文是LearnOpenGL的學習筆記,教程中文翻譯地址https://learnopengl-cn.github.io/) 0.前言 上一節學習了基礎光照(https://blog.csdn.net/gongjianbo1992/ar

原创 Windows上Qt源碼調試(使用VS或Qt Creator)

這裏分兩種情況,使用 Qt Creator 或者 Visual Studio,我以 Qt5.12.6 和 VS2019 來做示例。 1.使用 Qt Creator 首先,確保自己的 CDB(MSVC用) 或者 GDB(MinGW用) 已經

原创 Python實現雙向鏈表的增刪改查排序反轉等操作

雙向鏈表結構 鏈表由一連串的節點組成,雙向鏈表節點中包含兩個特殊的成員,一個用來指向前一個節點,一個用來指向後一個節點,如圖所示(爲了便於操作我們可以使用 head 和 tail 節點來做首尾): 添加節點時,把該位置前後指向修改爲新的

原创 Python二叉樹的遍歷:深度優先(前序、中序、後序)和廣度優先(層次)

準備 二叉樹(Binary Tree)是一種特殊的樹型結構,它的特點是每個結點至多有兩棵子樹(即二叉樹中不存在度大於2的結點),且二叉樹的子樹有左右之分,其次序不能任意顛倒(有序樹)。在 Python 中,已有別人實現好的二叉樹模塊,即

原创 《QDebug 2020年4月》

一、Qt Widgets 問題交流 1.信號槽使用宏的方式連接,可以訪問私有槽函數 宏的方式可以訪問 private slots: private slots: void test(); // connect(ui->btn,S

原创 Qt屬性系統及Q_PROPERTY宏的使用

0.前言 像某些編譯器提供的平臺特有的屬性系統(Property System)一樣,Qt也提供了一個複雜的屬性系統。當然,作爲一個跨平臺框架,Qt沒有依賴那些非標準的編譯器特性,比如:__property或者[property]。Qt的