原创 QTableWidget setitem不顯示

1、如果是調用insertRow插入行的,再調setRowHeight設置行高就可以了。 2、如果不是,那可能是rowCount返回的是0,這需要調setRowCount設置行數或者調insertRow插入行,再調setRowHe

原创 VS編譯帶QT的工程:error MSB6006: “cmd.exe”已退出,代碼爲 3。

因爲我的工程是拷貝被人的,所以QT路徑是不一樣的。 1. 需要在VS上安裝QT插件,然後點擊QT VS Tools的Qt Options去配置你的QT編譯版本 2. 點擊ADD選擇你的編譯版本,如msvc2017,msvc201

原创 編譯器的堆空間不足

我用debug模式一點事都沒有,結果切換回release編譯報了10個錯誤,全是"編譯器的堆空間不足"。網上找到有條說跟內存有關,然後我看了下任務管理器,16G內存用了10G,但還是報這個錯,後來把些軟件關掉後,把內存降到了3G多

原创 自己給自己寫了一個有趣的BUG,數組越界越到程序自身的安全空間

當初爲了把0x0-0xFF打亂,因爲char和unsigned char保存到內存的值都是一樣的,都是十六進制(也就是-1的char和255的unsigned char做一個字節的比較時是相等的,因爲十六進制都是0xFF),只是

原创 VS編譯錯誤 C2675 一元“++”:“_Iter”不定義該運算符或到預定義運算符可接收類型的轉換

如果在錯誤列表那雙擊就會跑到標準庫的文件裏去了,但錯誤明顯不可能是標準庫的問題,肯定是自己哪裏寫錯。 因爲VS的編譯信息會在輸出窗口打印出來,所以在輸出窗口那搜索"error"就可以定位到打印編譯錯誤的地方,但哪行並不是我們想要的

原创 QT(qCompress和qUncompress)與zlib(compress和uncompress)相互調用

因爲QT也是用zlib庫的,所以理論上數據是可以直接互通的,但現實是殘酷的。通過對qCompress和compress壓縮的數據進行打印,可以知道qCompress比compress的數據長四個字節,而這四個字節的內容則未壓縮前的

原创 二進制:沒有找到接受“const _Ty”類型的左操作數的運算符(或沒有可接受的轉換)

我遇到的問題是“二進制“<”: 沒有找到接受“const _Ty”類型的左操作數的運算符(或沒有可接受的轉換) ”。雙擊錯誤信息後,到了xstddef文件的struct less的()操作符重載那。遇到這種直接跑到模板下面的情況,

原创 C語言strcpy和memcpy

先用代碼給大家簡單的模擬下strcpy和memcpy的“原理”。爲了方便對指針不熟悉的人閱讀,下面都改成了用數組方式表示。 char* strcpy(char* dest, const char* src);把含有’\0’結束符

原创 VS不能使用回車鍵和刪除鍵及其他鍵問題

原因:系統win10,用搜狗輸入法中文模式在VS上打中文時按了shift後就會出現這樣的問題。 如:在下面這狀態下按shift就會出現如題的問題。 解決方法:再切回中文模式打字或者把輸入法的選詞框弄出來再消失(不能按shift)

原创 C語言數組

數組 由N個相同元素組成的一片連續的內存空間,通過下標運算符[n] 的方式去訪問(0 <= n < N-1)。如果n >= N那麼就會有可能出現越界的問題導致程序報錯退出,如果你剛好越界的地址沒有被其他程序使用,那就不會出錯,但一

原创 C語言 指針變量及相關的知識

指針是一個特殊的變量,因爲他的運算方式和所代表的東西跟基礎數據類型不一樣。指針變量存儲的是內存單元的地址編號,這地址就跟我們家門口的門牌號一樣。當用解引用運算符(*)的時候,CUP就會到對應的內存單元取內容,至於取多少,主要看定義時定

原创 C語言基礎數據類型的隱式轉換、截斷和解析問題

基礎數據類型的隱式轉換 隱式轉換髮生在不同的數據類型之間的運算。之所以有隱式轉換,是爲了確保數據的準確性。爲什麼不往最高級的數據類型上轉呢?是爲了節省資源和時間。 如下規則: 1、少字節往多字節轉換。 char ——> shor

原创 關於(C語言)文件讀寫速率問題

寫這篇文章是因爲聽到有人說“C++寫文件速度太慢了”,我們都知道在編程語言裏,彙編的速率>C語言>C++>其他語言,所以C++寫文件的速度不可能會慢的,如果C++寫文件都慢,那除了彙編和C語言的其他語言寫文件豈不是慢的不像話? 言歸正

原创 QML屬性值設置(初始化)方式

QML屬性值設置(初始化)方式有很多種,下面列出四種(常量、表達式、變量或者函數方式賦值)方式: 第一種方式–常量: //常量方式賦值 Rectangle{ id: rect1 x:0 y:0 width:10 height

原创 QT獲取信號的發送者

蘭布達表達式(Lambda) for(int i = 0; i < 5; i++) { QMessageBox *messageBox = new QMessageBox; messageBox ->setText(QString