原创 Qt 應用獲取本機設備IP

最近做的tpu應用需要在ubuntu 和linux(busybox )上運行,需要實現獲取本機IP的功能,實現過程詳細記錄一下,方便以後查找參考。 本人使用的Qt版本是5.6.2,。Qt應用獲取本機設備IP地址使用QHostAddress

原创 QT常用實用的界面設計技巧

一、主界面   1.窗口 最小化 最小化 關閉按鈕 顯示狀態自定義     setWindowFlags(Qt::CustomireWindowHint);     setWindowFlags(Qt::WindowCloseButto

原创 Qt之QFileDialog::getOpenFileName() 使用

爲了說明QFileDialog::getOpenFileName()函數的用法,首先要清楚函數的完整定義: QString QFileDialog::getOpenFileName (           QWidget *

原创 QT圖片資源的加載與使用(幾種方法)

 圖片是一種資源,而在Qt中,對於資源的使用是有其獨特的方式的! ①:一般來說:資源在內存中是用資源對象樹來表示的,該樹在程序啓動時創建。 ②:而對於資源而言:我們都是需要先將其加入到這棵樹中才能加載到內存中並被程序使用!! ③:而將一個

原创 Qt動態加載圖片資源文件(資源文件與源代碼分離)

在最近的Qt相關項目開發中,有不同客戶提出更改logo圖片的需求,每次更換一張圖片需要重新添加到.qrc資源文件,並重新編譯源代碼生產可執行文件,操作效率極低,頻繁修改源代碼也 容易引起其他不可靠問題,故想把部分做成動態加載的形式。在網絡

原创 Linux 下expect 環境安裝及簡單測試

expect是交互性很強的腳本語言,可以幫助運維人員實現批量管理成千上百臺服務器操作,是一款很實用的批量部署工具! expect依賴於tcl,而linux系統裏一般不自帶安裝tcl,所以需要手動安裝 下載:expect-5.43

原创 沒有core dump文件如何定位問題

最近在 Linux Qt上做開發,發現程序異常crash,用core dump文件也沒有記錄下來有用的信息,如下圖: 定位程序異常crash 的過程百般痛苦,雖然最後是用 把core dump文件大小的限制取消,完整記錄程序崩潰的堆棧信

原创 Linux-內存管理機制、內存監控、buffer/cache異同

在Linux中經常發現空閒內存很少,似乎所有的內存都被系統佔用了,表面感覺是內存不夠用了,其實不然。這是Linux內存管理的一個優秀特性,主要特點是,無論物理內存有多大,Linux 都將其充份利用,將一些程序調用過的硬盤數據讀入內存(bu

原创 Qt 常見的幾種數據類型轉換

double/float  size = 2.3334524; QString str = QString::number(size, 'f', 2); 其中f代表非科學計數法格式,2代表小數點後兩位。 char * 與 cons

原创 linux 下利用grep查找字符串

Linux查找文件內容或字符串的常用命令,非常實用。   1.從文件內容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名例子:在當前目錄裏第一級文件夾中尋找包含指定字符串的.in文件grep "thermcontac

原创 正確計算linux系統內存使用率

  圖中的例子很典型,就是:多數的linux系統在free命令後會發現free(剩餘)的內存很少,而自己又沒有開過多的程序或服務。對於上述的情況,正確的解釋是:linux的內存管理機制與windows的有所不同。具體的機制我們無需知道,

原创 Linux 內存管理及手動釋放linux cache內存

總有很多朋友對於Linux的內存管理有疑問,之前一篇linux下的內存管理方式似乎也沒能清除大家的疑慮。而在新版核心中,似乎對這個問題提供了新的解決方法,特轉出來給大家參考一下。最後,還附上我對這方法的意見,歡迎各位一同討論。當在Linu

原创 段錯誤調試工具-core dump

一、前言: 有的程序可以通過編譯, 但在運行時會出現Segment fault(段錯誤). 這通常都是指針錯誤引起的. 但這不像編譯錯誤一樣會提示到文件某一行, 而是沒有任何信息, 使得我們的調試變得困難起來.  gdb: 有一種辦法

原创 Qt獲取運行設備本機IP地址

本人在開發Qt應用程序時,需要在應用程序中顯示運行設備的本機IP地址,本來考慮解析運行設備的網絡配置文件來獲取IP地址,後來查閱文檔後,發現Qt的網絡編程模塊中QHostAddress類 可以很方便解決這個問題,記錄一下。 本人實現方法如

原创 Qt 文件另存爲功能

       最近在導出設備運行日誌時,爲避免每次導出的日誌文件名相同,需要把最新日誌文件加上當前時間保存。實現方式非常簡單:         QString fileName = "/dev/shm/XXX.log";