Qt 測測你對Qt的了解 Qt工具知多少

2021-09-21 19:17:11 字數 3740 閱讀 1446

原文:

你知道qt都提供了哪些工具嗎? 你知道qt的這些工具都有哪些功能嗎? 看看你對qt的工具到底了解多少呢? 不看不知道,一看保你嚇一跳!

一級題目:

qt designer — 所見即所得的介面設計工具, 可以用拖拽的方式將控制項排布在介面上,支援layout, 支援signal/slot編輯。 生成的檔案儲存為ui格式, ui是xml格式的普通文字檔案, 預設編碼為utf8, 所以介面上還可以直接寫中文(但是不推薦這麼做哦,還是應該用標準的qt國際化的方法來翻譯介面。).

qt assistant — 類似msdn的文件檢視工具, 支援html的子集(、超鏈、文字著色), 支援目錄結構、關鍵字索引和全文搜尋, 可以很方便的查詢qt的api幫助文件,所以是程式設計必備、使用率最高的工具。

qmake

– 用於生成makefile(編譯的規則和命令列)的命令列工具。 它是qt跨平台編譯系統的基礎。 它的主要特點是可以讀取qt本身的配置, 為程式生成與庫一致的makefile。

qt linguist — 被稱為qt語言家的linguist是用於介面國際化的重要工具, 但其實它並不能幫你翻譯,它的主要任務只是讀取翻譯檔案、為翻譯人員提供友好的翻譯介面。 聽起來這個功能好像不太夠, 沒錯! linguist必須要和其他工具一起用才能完成qt國際化。 關於國際化可以參考bug寫的qt國際化和本地化。 另外,大家可能還不知道, linguist工具從4.5開始可以支援gettext的po檔案格式了哦~

tmake – 和qmake功能一致,是qmake的前身。從qt3開始tmake全面被qmake替代。

qtdemo – qt例子和演示程式的載入器, 也可以看作是qt提供的乙個有用的工具。 有了這個工具, 使用者可以很方便的檢視qt提供的多姿多彩的例子程式,從中選擇自己需要的, 不僅可以看到程式執行的情況,還可以檢視原始碼和文件。

二級題目:

lupdate – qt國際化的重要命令列工具之一, 它的功能是從原始碼檔案或其他資源檔案中提取需要翻譯的字串,並將之用正確的編碼和格式存入ts檔案中。 這個ts檔案是xml格式的普通文字檔案, 但不建議用普通的文字編輯工具來編輯, 最好的方法是用linguist來處理這個檔案。

lrelease – qt國際化的重要命令列工具之一, 它負責將ts檔案轉化為程式使用的qm檔案。 轉化過程最大的變化是去掉了原始檔案中所有的空白和未翻譯的內容, 並將儲存格式壓縮, 所以qm檔案是保留所有有效資訊但占用硬碟最少的格式。

uic – ui compiler, 顧名思義,這個命令列工具是用來編譯ui檔案的, 它能把ui檔案轉化為編譯器可以識別的標準c++檔案, 生成的檔案是乙個.h。 這個工具通常情況下不需要使用者去手動呼叫, qmake會幫你管理ui檔案和呼叫uic工具。 具體的可以參考筆者的另外一篇帖子 qt4中ui檔案的使用方法。

moc – meta object compiler, 直譯過來是元物件編譯器, 簡單的說這是個預編譯工具, 用來生成一些與訊號和槽相關的底層**。 該工具處理帶有q_object巨集的標頭檔案, 生成形如moc_***.h, moc_***.cpp的c++**,之後再與程式的**一同編譯。 同樣,這個命令列工具也不需要使用者手動呼叫, qmake會在適當的時候呼叫這個工具的。

**題目:

後面的題目越來越難了哦~~

rcc – resource compiler資源檔案編譯工具。 qt的資源系統是自己一套特別的設計, 工程中可以包含字尾為qrc的資源檔案, 由rcc工具根據qrc的內容將相關的檔案編譯為二進位制,並與原始碼編譯在一起,儲存在應用程式的二進位制檔案中。 這個命令列工具同樣不需要手動呼叫,由qmake呼叫。

qconfig – qtembedded feature配置工具。 眾所周知,嵌入式版本的qt可以自己定義乙個feature定義檔案叫qconfig-***.h,裡面定義一些預定義的巨集, 通過這個檔案可以在編譯階段去掉一些feature, 以減少qt庫的footprint。 這個qconfig工具就是用來編輯feature定義檔案的。 具體的參考筆者的帖子簡單qt裁剪。

qt3to4 – 用於qt3程式公升級為qt4程式的移植工具。 它的原理是根據xml檔案裡定義的一系列文字替換的規則去做文字替換, 所以…怎麼說呢,這個工具的功能比較有限, 不可避免的需要很多人工干預才能解決編譯和執行的錯誤。 故而筆者的建議還是重頭寫程式比較靠譜。

qvfb – 一般做嵌入式開發的使用者對這個工具應該不陌生。 這是個有幾分神奇色彩的模擬器, 它可以模擬framebuffer裝置(尺寸、色深),還可以通過skin檔案模擬硬體鍵盤的布局(包括特殊鍵值的按鍵), 是在x86環境下除錯嵌入式程式必不可少的有效工具。 無怪乎minigui也比較無恥的偷竊了這個工具…實在是**力太大了

四級題目:

qtconfig – x11系統下用於配置qt環境的工具。 可以設定字型、style、palette、印表機等。 設定資訊會儲存在使用者家目錄,所以可以按不同使用者的喜好來設定不同的值。

qcop – 嵌入式環境qtopia帶的程序間通訊的工具, 用於程序間的通訊和程序間api的相互呼叫。

pixeltool – 類似放大鏡的工具,可以看清滑鼠滑過的每個畫素。

findtr – 從原始碼提出翻譯字串,儲存為linux的po格式。 po是linux系統下國際化方法gettext使用的標準格式, 所以這個工具是為了和linux本身的國際化方法相容而提供的。

uic3 – qt4中提供的處理qt3 ui檔案的工具,生成的**是qt4的**,可以放在qt4的工程裡使用。 值得注意的是,uic3生成的**有一部分會使用qt3support庫的api, 不是純的qt4**。

phonesim – qtopia裡帶的奇妙工具, 用於除錯手機環境。 可以模擬提供at命令介面的modem裝置。 有了這個工具就可以在桌面環境下除錯應用和modem之間的互動邏輯, 簡單的說qtopia裡像接打**、收發簡訊、stk程式等功能都是靠這個工具來除錯的。

makeqpf – qt為了嵌入式環境的需要自創了一種字型格式叫qpf, 這個格式是個點陣圖字型, 它把已經預渲染的文字直接儲存成二進位制內容, 使用的時候可以用記憶體對映載入, 從載入到繪製的過程不需要計算,所以速度非常快。 makeqpf工具就是用來建立qpf格式的字型的,它可以讀取系統中的字型格式, 根據使用者的設定生成特定字型大小規格的qpf檔案供使用者使用。

五級題目:

這些工具我也不熟。。就不多說了。。

lconvert – 4.5版本新引入的工具, 用於翻譯檔案之間的格式轉換, 將ts格式轉換為其他工具可讀取的xliff格式。

qdbusxml2cpp – qtdbus xml編譯器, 用於將xml格式的dbus遠端呼叫的物件和函式api的描述檔案翻譯為c++**。 這個工具建立的是個**的框架,裡面的api具體實現要使用者自己來填充。

d-bus viewer — 可以用來檢視d-bus物件及其對外提供的api, 可以通過雙擊api的方式呼叫某個方法, 還可以註冊訊號, 這樣所有發出的訊號都會顯示在窗體中。

idc – activeqt模組提供的命令列工具,用於將qt二進位制轉化為com server。 該工具由qmake呼叫,不需要手工執行。

dumpcpp – activeqt模組的命令列工具, 可以為乙個型別庫建立c++的命名空間。

dumpdoc – activeqt模組的命令列工具,可以為com物件建立qt風格的文件。

testcon – activeqt模組的命令列工具, 全稱為activex test container, 也就是可以作為activex控制項的容器, 這樣可以把控制項安裝到系統中再測試。 該工具會提供詳細的事件和屬性變化的log資訊。

qt script debugger — 用於除錯qt script的工具,可以單步執行,檢視輸出等。 qt文件裡有很詳細的一篇專門講這個的,有興趣的來看下: qt script debugger manual

Qt 測測你對Qt的了解 Qt工具知多少

原文 你知道qt都提供了哪些工具嗎?你知道qt的這些工具都有哪些功能嗎?看看你對qt的工具到底了解多少呢?不看不知道,一看保你嚇一跳!一級題目 qt designer 所見即所得的介面設計工具,可以用拖拽的方式將控制項排布在介面上,支援layout,支援signal slot編輯。生成的檔案儲存為u...

Qt工具你懂多少

你知道qt都提供了哪些工具嗎?你知道qt的這些工具都有哪些功能嗎?看看你對qt的工具到底了解多少呢?不看不知道,一看保你嚇一跳!一級題目 qt designer 所見即所得的介面設計工具,可以用拖拽的方式將控制項排布在介面上,支援layout,支援signal slot編輯。生成的檔案儲存為ui格式...

Qt獲取CPU序列號,親測可用

對於windows系統下獲取cpu序列號,網上有很多方式,通過c 呼叫windows的介面可以實現,不過 都很複雜,不易理解,並且還還不一定能成功。這裡用一種非常簡單的方式去獲取cpu序列號,通過qt的介面,超級簡單,不超過十行。原創 檢視cpu序列號的方式很多,可以通過命令列查詢,或者借助第三方軟...