原创 Qt中直線的自定義子類(支持縮放、拖拽,父級場景無拖影)

在QT編程中,我發現畫線的處理最複雜了。如果只是用QPaint的drawLine來做,自然簡單。可是,實際項目中會希望線段可以拖拽、縮放。而拖拽功能,有QGraphicsLineItem已經爲我們實現了,所以,我們會用這個類來創建

原创 Qt中矩形的自定義子類(支持縮放、拖拽,父級場景無拖影)

直線的自定義子類見我之前的文章:Qt中直線的自定義子類(支持縮放、拖拽,父級場景無拖影)。 支持縮放,支持按住shift鍵拖動鼠標時保持寬高相同。 #ifndef MYGRAPHICSRECTITEM_H #define MYGR

原创 104規約筆記

電力系統中常見的設備分爲 調度端(控制站、主站、客戶機) , 服務端(被控站、子站,典型設備包含TTU、RTU等),兩者之間通過104規約來進行數據通信與傳輸。其傳輸層實際上使用的是TCP協議進行數據的傳輸。固定端口號爲2404。

原创 依賴倒置設計原則(JAVA版)

本文章屬於我看了《簡明設計模式》後寫的筆記。 面向對象編程時,我們往往容易引入對象之間的依賴關係。這不利於團隊並行開發,並且維護代碼成本較高(往往需要修改兩個類甚至以上)。 比如下面的代碼(未使用包結構,命令行編譯運行的,只是爲了

原创 設計原則之李氏替換原則

定義:子類可以擴展父類功能,但不可改變父類的功能。 原則一、子類必須實現父類的抽象方法,但不得重寫(覆蓋)父類的非抽象方法。 原則二、子類可以增加自己特有的方法。 原則三、當子類覆蓋或實現父類方法時,方法的前置條件(即方法的形參

原创 Thinkphp6使用pdo_odbc連接SQL Server2000

最近做一個項目,採用了Thinkphp6框架,因爲要支持調用dll動態庫,使用了php7.4的ffi新功能(見文章:《php7.4使用FFI連接C語言的動態庫》),但是項目連接的數據庫是SQL Server2000,這是一個很老的

原创 Visual C++6.0編寫Win32動態庫

百度這類文章很多,但我這裏給來一個直接操作版: 第一步:新建項目: 選擇Win 32 DynamicLink Library,輸入工程名稱比如TestDll,點確定: 這裏選擇一個空的DLL工程(讓我們思路能更清晰)。 工程創

原创 php7.4使用FFI連接C語言的動態庫

注意php7.4支持的FFI只支持對動態庫裏的C接口的調用,並不支持C++。 網上看了一篇文章很受益:PHP FFI詳解 - 一種全新的PHP擴展方式。 我總結的代碼就來自這篇文章,所以此文不能算原創了。 首先,我用Visual

原创 uni-app建立原生TCP socket連接

在uni-app中建立socket連接我參考了https://ask.dcloud.net.cn/question/60的內容。並在我的android4.4.4的系統裏測試通過。代碼先貼上如下: if (plus.os.name

原创 QT4用qextserialport擴展連接串口

QT4裏不像Qt5自帶串口擴展那麼方便,但是嵌入式開發或者想支持很舊的Linux操作系統時就需要Qt4,畢竟Qt4輕量級啊。 引入qextserialport擴展的方法比引入QJson擴展方便多了,從:https://github

原创 Qt4通過QWebView調用網頁界面

QT4裏帶有QWebView類,這個類可以加載一個網頁的html文件。 使用方法爲: 1、在pro文件裏增加webkit: QT += core gui webkit 2、引入頭文件。 3、定義對象:MyWebVi

原创 凝思6.0.60操作系統編譯安裝sqliteman(版本1.2.2)

首先下載sqliteman-1.2.2.tar.gz,在https://sourceforge.net/projects/sqliteman/files/sqliteman/1.2.2/可以下載到。 掛載光盤,root執行: ap

原创 QT4引入QJson擴展

QT4引入QJson擴展頗爲複雜,百度搜索可以查看到解決方案,大概是如下過程: 1、從http://qjson.sourceforge.net/build/下載qjson擴展源碼。 2、下載windows版的cmake(64位還是

原创 Qt背景圖片填充、適應、拉伸、平鋪、居中效果

背景圖片在windows設置裏有填充(按寬高都填滿窗口,多餘部分溢出隱藏)、適應(寬高適應窗口,缺少的部分用背景色填充)、拉伸(將圖片寬高拉伸至窗口寬高,可能變形)、平鋪(左上角繪製圖形,一直到繪製滿窗口爲止)、居中(將圖片繪製到

原创 QT標準彈窗按鈕翻譯中文(按鈕漢化)

本文方法QT4、QT5均適用。 百度搜索了好久,各類文章,操作起來都失敗了,所以我自己寫一個。 首先需要到Qt安裝目錄裏找到“qt_zh_CN.qm”這個文件,我的QT版本爲4.8.7,目錄在“C:\Qt\4.8.7\transl