原创 【Qt】QGraphicsItem無法觸發mouseMoveEvent問題

graphics體系中graphicsitem重載鼠標事件,item只觸發press事件,沒有觸發move和release事件,scene和view都能觸發press、move、release事件。 經過看幫助文檔,查看graphicsi

原创 gcc下載地址

網上看到有提供的http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/,可以打開,但是下載太慢了 這裏記錄一個下載很快的地址https://mirrors.tuna.tsinghua.ed

原创 【Qt】qt獲取網絡時間

Qt的QDateTime提供獲取本機時間,但本機時間有時候是不準的,當需要獲取準確的時間時,需要聯網獲取時間。網上搜索了一下,找到了一個能用的--http://www.cppblog.com/gaimor/archive/2012/07/

原创 qt5.12報錯 error: 'type_traits' file not found

qt5.11能用的配置放到5.12就不能用了,報錯error: 'type_traits' file not found ,5.11用的ndk是r11de,5.12的ndk換成新的使用r19就ok了,其他配置跟跟5.11時候一樣。 下圖是

原创 【Qt】剪切圖片左上角是直角,其他三個角是圓角

先看效果圖 直接上代碼: QPixmap Widget::round(const QPixmap &img_in, int radius) { if (img_in.isNull()) { return

原创 Git clone項目失敗,提示git did not exit cleanly(exit code 1)的解決辦法

Git clone項目失敗,提示git did not exit cleanly(exit code 1),會提示TortoiseGitPlink需要填寫密碼 即本地的sshkey和遠端的sshkey對應上,就能正常clone項目 我本

原创 【Qt】自定義自動換行的控件

據說QLabel設置setWordWrap(true)在有足夠的高度的時候可以自動換行,但我試了一下不行,不懂是哪裏的問題。 這裏自己實現一個。 通過重寫QTextEdit,根據輸入的字符串的長度來自動調整高度,QTextEdit是會自動

原创 Qt使用QBrush貼圖片紋理

項目中有用到QBrush支持貼圖片紋理實現自定義畫筆類型。 使用的接口有 void QBrush::setTexture(const QPixmap &pixmap) void QBrush::setTextureImage(con

原创 關於找不到nsWindows.nsh的問題

使用NSIS打包調整窗口大小會用到nsWindows.nsh,但在官網上下載的最新版3.04並沒有,官網上提供的插件中也沒有提供。貌似是這個插件並沒有得到官方的認可。這裏可以下載nsis2.46的增強版,就自帶有了。 下載地址:https

原创 【數據結構】算法數量級的分類

我們在實現算法時使用了幾種結構性的原語(普通語句、條件語句、循環、嵌套語句和方法調用),所以成本增長的數量級一般都是問題規模N的若干函數之一。下表總結了這些函數以及他們的稱謂、與之對應的典型代碼以及一些例子。 描述 增長的數量級 典型代碼

原创 c++二進制兼容及解決方法

什麼是二進制兼容 二進制兼容ABI(application binary interface)主要指動態庫文件單獨升級,現有用到老動態庫的應用程序是否受到影響。 1.升級庫文件,不影響使用庫文件的程序。 2.新庫必然有新頭文件,但是舊的二

原创 【數據結構】c++棧的實現

       棧是一種基於後進先出策略的集合類型。當你的郵件在桌上放成一疊時,使用的就是棧。新的郵件來到時你將它們放在最上面,當你有空時你會一封一封地從上到下閱讀它們。這就是一種後進先出的情況。 棧的實現有兩種,一種是順序棧,一種是鏈式棧

原创 【數據結構】c++隊列的實現

隊列是一種基於先進先出策略的集合類型。按照任務產生的順序完成他們的策略我們每天都會遇到:在劇院門前排隊的人們、在收費站前排隊的汽車或計算機上某種軟件中等待處理的任務。任務服務性策略的基本原則都是公平。在提到公平時大多數人的第一個想法就是應

原创 【數據結構】c++實現揹包

       揹包是一種不支持從中刪除元素的集合數據類型。它的目的就是幫助用例收集元素並迭代遍歷所有收集到的元素(用例也可以檢查揹包是否爲空或者獲取揹包中元素的數量)。迭代的順序不確定且與用例無關。要理解揹包的概念,可以想象一個非常喜歡收

原创 【數據結構】c++利用兩個棧實現特定格式的算術表達式的值

先上代碼 double expression(string &str) { stack<char> ops; stack<double> vals; for(int i = 0; i < str.size();