原创 QTcpSocket 在線程中使用的一個小坑

問題: 項目裏需要個很簡單的tcp通訊,都是發些字符,但遇到個問題是在接受數據後發送反饋時,對方可以接到數據,主動發數據時對方一直接不到數據。 網上看了看,跟線程有關,我也確實是在線程裏發的數據,寫了個小例程測試,果然是這裏的原因

原创 數據結構和算法分析c++:向量的實現

vector是比較常用的結構,在C++的STL中就有了vector的實現,爲避免與庫函數混淆,類模板命名爲Vector,它的本質還是基本的數組。 下面我們來看一下Vector的具體c++實現吧。 #ifndef REDEFINE

原创 keyCode

鍵碼值對應表

原创 QT Creator 輸出信息到控制檯

相關配置 QT Creator 設置 配置pro文件 在pro文件里加上 CONFIG += console 之前的理解是QT Creator的設置和pro文件是等價的,只配置一項即可,實踐發現二者都要配置。 輸出方法 st

原创 win10忘記開機密碼

有一次遇到忘記開機密碼,就在網上找了找,在此備份一下 方法地址 該方式需要用到u盤啓動盤,正好當時手頭有個啓動盤,按照方式一分鐘搞定!

原创 QT5實現鼠標點擊窗口外部關閉該窗口

有些時候我們希望通過鼠標點擊窗口外部來關閉當前窗口,這裏主要用到兩種方法;  [virtual] bool QObject::event(QEvent *e);  [virtual] bool QObject::eventFilter(Q

原创 數據結構與算法分析c++:棧的應用(3)

中綴表達式轉後綴表達式 中綴表達式轉換成後綴表達式的方法闡述 依舊利用棧這種數據結構,本文只是以+、-、*、/、()幾個運算符爲例,有興趣的小夥伴可以自己拓展。 如何將a + b * c + ( d * e + f ) * g形式的中綴

原创 關於QT5中中文亂碼問題的解決

三點要注意 1、包含QString頭文件 原因:中文時會有些特定字符出現“常量中有換行符”編譯錯誤,沒遇到問題純屬僥倖 2、改變編碼器設置 3、使用fromLocal8Bit或QStringLiteral宏 QString in

原创 QLabel實現雙擊事件

老問題了,也有很多實現方式,在此mark一下。 我是因爲程序裏需要選擇多張圖像的一張(qlabel顯示),進而對這張圖做後續處理,想用雙擊該圖實現發射處理信號。因爲QLabel本身沒有雙擊信號,故而直接以QLabel爲基類派生一個類重寫

原创 QT各版本下載網址

從別人那找到的地址,給自己做個備份 http://download.qt.io/archive/qt/

原创 QT實現鍵盤複用:單擊、雙擊、長按

由於項目需求,需要實現基於鍵盤按鍵的複用,查了很多資料都不滿足我的需求,其中Mango的吐槽一下Qt的按鍵消息響應對我啓發很大,他闡述了關於按鍵長按的問題,我的測試結果和他有些出入,但總體思路是一樣的,也歡迎大家指正。下面來說一下具體的實

原创 數據結構與算法分析c++:STL中的向量和表

在c++語言的庫中包含了公共數據結構的實現,這部分內容就是我們熟知的標準模板庫(Standard Template Library,STL)。 抽象數據類型(abstract data type,ADT) 抽象數據類型是帶有一組操作的一些

原创 關於Q_DECL_OVERRIDE小記

Q_DECL_OVERRIDE也就是c++的override # define Q_DECL_OVERRIDE override 在重寫虛函數時會用到,在此mark。 作用是防止寫錯虛函數: void keyPressEvent(QKey

原创 數據結構與算法分析c++:棧的應用(1)

十進制和其他進制轉換 我們知道十進制數轉換成其他進制數就是不斷地除以該進制數,每次的餘數倒序組合在一起就是轉換後的進制數的值,倒序組合正好利用棧LIFO的特性。下面是實現的代碼,比較簡單,不做解釋。 #include <iostream>

原创 數據結構與算法分析c++:棧的應用(2)

括號匹配 檢測括號匹配是比較常見的功能需求,比如編寫代碼時,往往因爲多了一個括號(當然少了也不行),編程工具,例如vs,會提示大批量的錯誤,這時我們往往找到對應缺失的括號添加或去除就可以了。利用棧就可以很高效的實現這一功能。我們僅就圓括號