原创 Qt設置部件顏色無效

Qt應用中,經常有一些部件設置顏色或者字體時無效的情況,尤其在應用使用了統一的風格管理後更明顯。 比如對一個部件的樣式表使用: background-color: rgb(32, 74, 135); 通過查詢Qt幫助文檔,說明了在這種情

原创 Imx7用戶空間加載M4固件

背景:先加載M4固件辦法是在u-boot啓動時加載,linux內核啓動後進行信息交互。 現在改爲kernel啓動後,在用戶空間再加載M4固件。 區別:u-boot階段加載的胃elf文件,用戶空間加載的爲bin文件。 實現此功能,需要移植一

原创 Qt應用托盤最小化

       背景:項目需要win環境下的exe最小化到托盤,點擊時恢復,徹底關閉時需要通過對托盤中的圖片右鍵點擊。        Qt的官方例子有一個最小化托盤的小程序,實現了圖標變換等操作,此程序參照了官方示例,更改了一些設計。 ma

原创 Qt攔截特定按鍵

  背景:Qt應用運行時,鍵盤ESC按下導致程序異常退出,需要在程序整個運行期間攔截ESC這個按鍵響應。        Qt整個運行機制是事件循環,在運行期間如果需要攔截特定的任務,Qt提供一個便捷的處理機制,就是事件過濾器。因爲過濾器的

原创 Qt中獲取Shell返回值

背景:Qt中需要通過應用層執行shell相關命令,有的時候還需要得到執行完畢後的返回值。 .h #ifndef EXEC_SHELL_H #define EXEC_SHELL_H #include<iostream> #include

原创 Linux中proc/cmdline

Linux終端中使用命令: cat /proc/cmdline 可以看到內核啓動時U-boot傳入參數。 root@colibri:~# cat /proc/cmdline clk_ignore_unused ip=off root=

原创 Qt中exec

Qt中的exec()方法到處可見,例如: QCoreApplicaton::exec()  QApplication::exec() QDialog::exec() QThread::exec() QMenu::exec() 那麼,這些e

原创 Qt水平/垂直佈局

背景: 在現有的ui的頂端放置自定義的狀態欄。Qt中的佈局,可以使用QDesigner直接拖放,同樣可以手寫(稍顯麻煩),但是常用在小部件的疊加布局上。 常見類是QBoxLayout及其子類QHBoxLayout和QVBoxLayout。

原创 Linux複製目錄文件夾

使用命令: cp -rfd dir_1 dir_2 -r:recursive,遞歸的意思,即複製此文件內的所有子目錄及子目錄下的文件。 -f:force,強制覆蓋已有文件。 -d:此選項尤爲重要,否則如果複製的文件夾內有軟連接等鏈

原创 Linux使用動態庫.so

背景:gcc的編譯過程包括預處理、編譯、彙編、連接纔可以成爲可執行的應用程序。 例子hello.c: 經過gcc -E -o hello.i hello.c進行預處理生成hello.i文件。 經過gcc -S -o hello.s hel

原创 imx7自定義設備樹

背景:根據自己需求更改官方提供設備樹。 設備樹目錄:內核源碼文件內arch/arm/boot/dts/。 複製一份源dts。cp arch/arm/boot/dts/imx7d-colibri-eval-v3.dts arch/arm/b

原创 Qt應用層獲取底層硬件中斷

背景:Qt應用程序需要對底層IO端口的中斷做出響應。 .h #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <

原创 Qt應用層獲取網絡連接狀態

背景:項目需要實時監測網線的插拔狀態,方法有很多,分爲兩大塊。 輪詢:可以輪詢cat /sys/class/net/eth0/carrier的值,連接時爲1,斷開時爲0。或者輪詢使用shell查看ifconfig中對應網卡的狀態是否RUN

原创 Qt的dialog中lineedit無法輸入

背景:繼承修改Qt的Qdialog,框內添加了一下lineedit,但是發現焦點也抓到了,軟鍵盤也彈出了,就是不能輸入字符。 先找原因,因爲是使用的模態對話框,最後有執行exec(),所以查看Qt的幫助文檔怎麼介紹exec()的。 [vi

原创 git重置本地版本

本地的代碼修改亂了,需要重置到服務器上的最後更新版本,先更新本地的git庫,然後重置到某個版本即可。 git fetch git reset --hard origin/cdev