QByteArray最好用中間變數儲存臨時變數

2021-08-07 20:42:44 字數 584 閱讀 9581

最近qt程式設計實踐中,發現qbytearray的不可預料問題,不知道為啥。程式設計實踐是:我用qclipboard儲存自定義結構體資料,實現程序間的資料傳輸。開始我是這麼寫**的:

從qclipboard讀取自定義結構體資料的過程是:獲取mimedata指標md--》獲取指標md的data域ba,是qbytearray物件--》用ba初始化qdatastream流in--》用流in寫入qvariant,最後qvariant呼叫value方法獲取自定義的結構體值。

這個寫法,把qbytearray物件作為了臨時變數,在乙個程序內部執行時,沒有錯誤。但在跨程序執行時,獲取到的自定義結構體值是空的。不知道為何。網上也沒有人講這個問題。不過,我在除錯時,將中間變數都單獨用變數表示了,意外地解決了這個問題。這麼寫:

用單獨的變數轉儲qbytearray中間變數值,程序間的通訊,自動地解決了,可以從剪下板獲取到資料。雖然不知道所以然,但知其然也不錯耶。

此外,在qstring轉char*時,最好寫個函式,用中間變數轉儲qstring.data()得到的qbytearray物件,直接使用臨時變數可能會在某些場景下有意外的錯誤。

以上涉及到的剪下板實現程序間通訊,網上都查得到,就不多寫了。

計算密集型(最好用C) IO密集型(最好用指令碼)

2 計算密集型任務雖然也可以用多工完成,但是任務越多,花在任務切換的時間就越多,cpu執行任務的效率就越低,所以,要最高效地利用cpu,計算密集型任務同時進行的數量應當等於cpu的核心數。3 計算密集型任務由於主要消耗cpu資源,因此,執行效率至關重要。python這樣的指令碼語言執行效率很低,完全...

AndroidStudio上面最好用的外掛程式

android butterknife zelezny 在activity,fragment,adapter中選中布局xml自動生成butterknife註解 快速將json字串轉換成乙個類 從布局檔案中生成對view的宣告,有乙個缺陷,多個module擁有同名的xml布局檔案,有可能會設定到別的m...

史上最好用的vim ide專案

專案功能 9.vim各種括號補全 彩虹顏色 10.fuzzy finder 模糊搜尋工具,vim下最快的檔案目錄搜尋工具 11.vim貼上縮排混亂解決方案 f1開啟 關閉vim paste模式 12.nerdtree git plugin 顯示檔案git倉庫 狀態 13.vim mini buffe...