原创 Qt小技巧14.Qt5.12.x編譯Mysql插件驅動

1 遇到的問題 Qt後面的版本都沒有直接帶Mysql插件驅動了,應該是協議的原因,需要我們自己手動編譯下,默認是這樣子的: 打印下QSqlDatabase::drivers()結果如下: ("QSQLITE", "QODBC", "QOD

原创 Qt雜談4.淺談事件傳遞的那些事

1 爲啥聊這個? Qt中的事件是具有一套完整的傳遞機制的,記得剛學Qt的時候,很長一段時間內對事件過濾器及返回值、event函數的返回值、事件的accept、ignore等函數的作用沒能有一個清晰的認知,也沒能把他們串聯起來,導致開發過程中

原创 Qt定製開發3.飛機飛行狀態綜合顯示控件

部分演示效果,可定製開發。 1 簡單介紹 基於Qt圖形視圖框架開發,默認使用GPU渲染,用於可視化展示飛機的飛行狀態、儀控狀態、設備狀態等。 2 使用方式 調用參數設置接口即可,界面上所有參數都有對應的設置接口,使用極爲簡單。 publi

原创 Qt小技巧13.如何爲程序設置環境變量?

1 說下背景 有時會有這樣一種場景,我寫了個程序,該程序依賴一些第三方的動態庫,假如現在將三方庫放到了可執行文件同級目錄下的dependence目錄,現在我將程序打包好併發給了用戶。此時用戶是無法直接執行可執行程序的,因爲找不到依賴的三方庫

原创 Qt實戰14.告警信息滾動輪播控件

1 需求描述 做一個獨立的控件,該控件能夠滾動輪播報警信息,告警信息分爲一般、嚴重、危險三個等級,分別用不同顏色做標記。 2 設計思路 做滾動輪播效果,優先想到Qt的動畫框架,同時考慮到圖形視圖框架的易用性,實現上應該會簡單不少,所以該控

原创 Qt小技巧12.QObject子類D指針的使用

1 前言 D指針可以隱藏類的實現細節,對於需要發佈庫文件的項目來說屏蔽實現細節尤爲重要,具體有哪些優點自行查閱下吧,文章太多了,不再重複了,下面介紹下如何使用Qt的方式將D指針應用於自定義類中。 2 舉個例子 按照Qt的慣用方法,例如有個自

原创 Qt實戰13.簡單通用的日誌輸出窗口

1 需求描述 設計一個類似於VS的日誌輸出窗口,點擊某一行後內容能夠自動展開,改變列寬時,選中行能夠根據日誌內容自動調整高度。同時提供一些常用的功能,例如複製、顯示/隱藏列、日誌分類顯示、顯示狀態恢復等。 2 設計思路 這是一個實際項目

原创 Qt定製開發2.文件傳輸模塊PLUS(多線程後臺版)

1 簡單介紹 真實項目中使用,基於Qt開發的文件傳輸模塊,後臺版,可集成到任意的Qt工程中。 支持多個線程的同時發送、接收文件,運行穩定可靠 可以同時監聽多個端口,也可以同時向多個端口發送文件 提供Demo示例,接口足夠簡單,小白也能輕

原创 Qt小技巧11.界面假死或不刷新的處理方式

1 遇到的問題 有時會遇到這樣一種情況,比如界面最小化或者界面關閉後(進程未退出),當重新顯示時界面確是一片白的,原因是paintEvent並被未調用,導致界面未刷新。如果手動改變下界面大小時又可以正常顯示了,因爲此操作調用了paintEv

原创 Qt定製開發1.清新界面套裝版

1 簡單介紹 提供通用的自定義邊框,純Qt實現,目前完成了部分控件樣式的定製,後續不斷完善中。 提供了通用的最小化、最大化、關閉、換膚按鈕 提供了通用的軟件啓動界面 支持了自定義大小調整功能 支持了拖動到邊緣自動縮放功能 2 使用方式

原创 Qt小技巧10.不使用調試F2直接進入源碼

1 對面的Qter看過來 使用QtCreator開發時,有時候想窺探一下Qt的源代碼,哎呀,網上查一下全部是要打開調試纔行,不打開調試直接F2行不行,答案肯定是可以的,並且啥都不用配置。 2 使用QtCreator的發現的一個問題 比如我

原创 Qt小技巧9.moveToThread的使用技巧

1 說下背景 1.1 常規方式存在的問題 一般來說,在Qt中使用線程,最常規的做法是繼承QThread,重寫run函數,調用start函數,run函數裏邊的代碼就會在新的線程中執行了。這樣做有點麻煩,要繼承、重寫,還容易出錯,最典型的錯誤如

原创 Qt小技巧8.利用反射機制通過類名創建Qt對象

1 需求描述 在項目開發過程中可能會有這樣一種需求,就是我連頭文件都沒有隻知道類的名字,在這種情況下需要將對象實例化出來,同時還要調用類中的方法。想想有點不可思議,但在Qt的世界裏,這些是很容易實現的。 2 實現過程 舉一個簡單例子,一個基

原创 項目經驗2.需求才是王道

1 一點感悟 1.1 英雄無用武之地 技術再好,沒有施展的空間,你的價值是無法體現出來的。這個施展的空間就是用戶需求,只有客戶有需求了,你纔有機會發揮你的技術能力,沒有需求,你啥也不是。我們都應該感謝這個時代,給了我們這麼多能夠實現自身價值

原创 Qt實戰12.可自由展開的ToolBox

1 需求描述 需求就很簡明瞭,Qt自帶的QToolBox同時只能展開一個頁面,客戶要求可同時展開多個,這種只好自定義實現了。網上也能找到很多實現,但還是感覺親力親爲的好,畢竟自己動手豐衣足食嘛。 2 設計思路 主要有兩部分,分別是Too