原创 自定義QWidget作爲QListWidget的Item時偶爾出現位置偏移問題的解決方法和原理

一. 問題現象 在QListWidget設置爲QListVIew::IconMode時,會偶爾出現自定義的QWidget作爲QListWidget的Item位置出現偏移,效果如下(其中有一個出現了位置偏移) ui->listWidget

原创 QListWidget自定義item的兩種方式(二)——使用QWidget作爲item

一. 效果 使用QWidget作爲QListWidget的Item,測試程序效果如下(下面內容包含測試程序源代碼):   二. 步驟 使用QWidget作爲QListWidget的Item的步驟如下 1. 定義要作爲QListWidge

原创 QListWidget自定義item的兩種方式(一)——使用Delegate

一. 效果 使用Delegate自定義QListWidget的Item,測試程序效果如下(下面內容包含測試程序源代碼): 二. 步驟 使用Delegate自定義QListWidget的Item的步驟如下: 1. 派生QStyledIem

原创 C++基本數據類型、結構體、類、聯合內存佔用(二)——結構體、類

C++類和結構體內存佔用方式相同 類的內存佔用規則 (1)空類大小爲1,因爲C++標準規定空類也可以實例化,每個實例在內存中都有一個獨一無二的地址,爲了達到這個目的,編譯器往往會給一個空類隱含的加一個字節,這樣空類在實例化後在內存得到了獨

原创 編程時遇到代碼在不同電腦上中文顯示有的正常,有的是亂碼的情況的問題原因

編程時遇到代碼在在不同電腦上中文顯示有的正常,有的是亂碼的情況 關於這個問題,首先要明確一點,每個文本文件都有自己的編碼格式,每臺電腦在編輯文字的時候就採用了自己的默認編碼格式把數據寫入到文件中。而不同電腦或者不同編輯器默認的編碼格式不同

原创 跨平臺編程(三)——VisualGDB

1. VisualGDB的功能介紹 VisualGDB能夠讓Linux下的程序在Windows上用Visual Studio中調試起來,利用vs的可視化界面方便的進行linux程序的調試。 VisualGDB通過SSH使得Windows下

原创 qss樣式的作用範圍及其替換、覆蓋

1. qss的作用範圍 1)設置全局樣式 可以在main函數中,直接給QApplication設置樣式,此樣式爲全局樣式,對整個應用都生效 QString qstrStyle = "QPushButton{color:blue;}"

原创 linux下指定運行程序所需要的.so文件路徑的四種方式

1. export LD_LIBRARY_PATH=`具體路徑` 將某具體路徑添加到動態庫路徑環境變量,但僅當前終端有效 2. 將.so文件放到/lib或/usr/lib目錄下(不推薦) 3. 將庫文件絕對路徑添加到/etc/ls.so

原创 C++從代碼到可執行程序

1. 從代碼到可執行程序的執行 無論是windows操作系統還是linux操作系統,C++編寫代碼到可執行程序的執行,都經過了預處理、編譯、彙編、鏈接、運行5個步驟。有時候我們也將預編譯、編譯和彙編統稱爲編譯。下面分別介紹這5個步驟 預處

原创 QT Creator 常用操作

全工程查找: edit - find/replace - advanced find - open advanced find 快捷方式:ctrl+shift+f   F4 在頭文件和代碼之間切換 F2 在聲明和實現之間切換 Ctrl +

原创 QT用戶界面類的關係及QWidget、QDialog及QMainWindow的區別

    QWidget類是所有用戶界面對象的基類。 窗口部件是用戶界面的一個基本單元:它從窗口系統接收鼠標、鍵盤和其它事件,並且在屏幕上繪製自己。每一個窗口部件都是矩形的,並且它們按Z軸順序排列。一個窗口部件可以被它的父窗口部件或者它前

原创 C++使用openssl對數據進行加解密

1. openssl庫文件及頭文件的獲取 獲取openssl庫文件及頭文件有兩種方式: 1)下載OpenSSL源代碼並由自己編譯後使用 2)下載已編譯好的安裝包,安裝後直接可以得到openssl的庫文件及頭文件 使用第一種方法獲取,過程十

原创 C++基本數據類型、結構體、類、聯合內存佔用(三)——聯合

定義及規則 當多個數據需要共享內存或者多個數據每次只取其一時,可以利用聯合體(union)。在C Programming Language 一書中對於聯合體是這麼描述的:      1)聯合體是一個結構;      2)它的所有成員相對於

原创 C++基本數據類型、結構體、類、聯合內存佔用(一)——基本數據類型

基本數據類型 VS下基本數據類型佔用內存如下表 PS:很多書籍及博客介紹,64位編譯環境long佔8個字節,這個介紹太過於籠統。基本數據類型佔用的內存和編譯器有關(要看編譯器廠商如何實現)。long在VS、64位編譯環境下佔用4個字節。

原创 常成員函數——const修飾符修飾的成員函數(函數後面加const)

常成員函數,是指由const修飾符修飾的成員函數,在常成員函數中不得修改類中的任何數據成員的值。常成員函數表示成員函數隱含傳入的this指針爲const指針,決定了在該成員函數中,任意修改它所在的類的成員的操作都是不允許的(因爲隱含了對t