原创 《Effective C++》(四)

設計與聲明 條款18讓接口容易被正確使用不易被誤用 條款19設計class猶如設計type 條款20寧以 pass-by-reference-to-const 替換 pass-by-value 條款21必須返回對象時別妄想返回

原创 macOS中Qt保存的本地文件去哪了?

引言 今天在實踐Qt+MySQL的小項目《餐飲信息服務系統》時,打印賬單,即保存文件到本地,卻在項目根目錄下未發現保存的文件,利用spotlight和alfred都搜不到,並且程序也能順利執行(未進入保存失敗路徑),甚是奇怪。 坑

原创 簡單易用的Qt日誌模塊

引言 一日誌實現方法 代碼實現 LogHandlercpp 二崩潰處理 代碼實現 LogHandlercpp 小結 參考 引言 項目中需求一日誌模塊,主要實現兩大功能:1.自動打印信息至日誌文件;2.軟件意

原创 《Effective C++》(五)

實現 條款26儘可能延後變量定義式的出現時間 條款27儘量少做轉型動作 條款28避免返回handles指向對象內部成分 條款29爲異常安全而努力是值得的 條款30透徹瞭解inlining的裏裏外外 條款31將文件間的編譯依存關

原创 macOS下qt5連接mysql5.7驅動問題

引言 解決 方法1 重新編譯libqsqlmysqldylib 方法2重新鏈接libmysqlclient庫的路徑 Tips 添加環境變量後才能用qmake Qt操作MySQL數據庫前要先創建數據庫 謹慎使用brew i

原创 《Effective C++》(三)

資源管理 條款13以對象管理資源 條款14在資源管理中小心copying行爲 條款15在資源管理類中提供對原始資源的訪問 條款16成對使用 new 和 delete 時要採用相同的形式 條款17以獨立語句將 newed 對象置

原创 《Effective C++》(二)

構造析構賦值運算 條款05瞭解C默默編寫並調用了哪些函數 條款06若不想使用編譯器自動生成的函數就該明確拒絕 條款07爲多態基類聲明virtual析構函數 條款08別讓異常逃離析構函數 條款09絕不在構造和析構過程中調用vir

原创 Qt應用MySQL小結

引言 一QSqlQuery類 插入 查詢 二QSqlTableModel類 在QTableView中顯示數據庫中表的數據 查詢 排序 插入 刪除 修改 三QSqlRelationalTableModel類

原创 快速排序中的套路

引言 思想 代碼 其他 參考 引言 算法是碼農的套路。而提煉算法中的套路,然後學以致用,才能進階。 思想 快速排序算法的基本思想是分治策略(Divide-and-Conquer Method)。步驟如下: 1. 選取一個

原创 《後臺開發核心技術與應用實踐》(四)

多線程 1 多線程 2多線程的創建與結束 3 線程的屬性 4 多線程的同步 5 多線程的重入 進程 1程序與進程 2進程的創建與結束 3殭屍進程 4守護進程 進程間通信 1管道 2消息隊列 3共享內存 4信號量 5ip

原创 自定義QTableView鼠標滾輪行爲

引言 方法1 在頭文件中聲明滾輪事件函數 重新實現wheelEvent函數 方法2 聲明事件過濾器 安裝事件過濾器 重寫事件過濾器 參考 引言 項目中用到QTableView,其中部分item行高較高,而QTabl

原创 《後臺開發核心技術與應用實踐》(二)

常用STL的使用 1 string 2 vector 3 map 5 set 編譯 1編譯與鏈接 2makefile的撰寫 3目標文件 調試 1strace 2gdb 3top 4ps 5Valgrind 3.

原创 QTableWidget單元格自動分行顯示

引言 代碼實現 拉伸窗口時自動調整行高 參考 引言 1.QTableWidget的單元格在編輯內容時只能單行顯示,當單元格內容較多時不便於編輯; 2.單元格的長度在縮短到一定程度後,後面的內容會顯示爲... 查得可以用

原创 Qt5.2應用SQLite小結

引言 使用環境 數據庫操作 初始化數據庫 SQL語句使用 QSqlTableModel的使用 小結 參考 引言 SQLite是一款輕型的數據庫,佔用資源少,且 QT 內置有 SQLite 數據庫模塊,無須手動編譯驅動,

原创 MYSQL升級後GROUP BY語句出錯解決方法

引言 解決 查詢mysql服務器版本 查看sql_mode 修改sql_mode 參考 引言 實踐Qt+MySQL的小項目《餐飲信息服務系統》中,使用 select cid,cname,count(fname) from