過去的十天,我們用了十天左右的文章篇幅,介紹並製做了一個簡單的看圖軟體。
每一篇教學,我都精簡扼要的介紹了一兩個 Qt 圖形元件以及它們最關鍵成員方法。但是,其實除了我介紹的部分以外,每個 Qt 物件都還有許多不同的使用方法以及設定,這些都要透過閱讀 Qt 官方文件得知。
在目前的跨平台圖形框架市場上,Qt 官方文件的完善程度和詳盡程度,少有其他函式庫能夠相比,所以多多閱讀 Qt 官方文件,絕對對於深入了解 Qt 有很大幫助。
這是 Qt 6 官方文件的網頁入口: https://doc.qt.io/qt-6/
這個入口其實用處不多,就只是個入口,最常用的部分,其一是左邊欄的「教學與範例(Examples and Tutorials)」。裡面的範例都是完整的 Qt 專案,這些範例都是非常有用的資源。
另一個最有用部分,是右上角的搜尋框,搜尋特定 Qt 物件名稱,深入了解用法。
接下來,我們以 QWidget 為例,簡明扼要的說明 Qt 文件閱讀的要點。
這是 QWidget 的文件頁面:
https://doc.qt.io/qt-6/qwidget.html
我們由上而下讀下來。
首先是標頭檔。告訴你要使用這個物件的話,需要 #include<QWidget>
。
第二是模組。寫著這個物件屬於 widget 模組,本系列用 qmake,這裡告訴我們 qmake 引入 widget 模組的語法是 QT += widget
。如果用 cmake,那語法不一樣。
再往下是物件的繼承樹結構,清楚標明 QWidget 繼承了 QObject 與 QPaintDevice,所以可以去翻查父類別裡面有什麼。另外也列出了所有繼承 QWidget 的子類別 (整整一大串,畢竟 QWidget 是圖形元件的基本類別)。
下方有個很有用的連結 List of all members, including inherited members
會導引你到另一個頁面,網頁裡列了所有的成員變數,成員方法,enum 等等。很適合瀏覽器全文搜尋關鍵字。
然後是 Deprecated members
連結,裡面列了已經標記為廢棄的成員函數/方法,如果你在網路上看的教學比較舊,API查不到,可以來這邊看看,通常會有替換廢棄成員函數的建議。
這就是最上方的類別概覽表格。可以有一個基本的概念。
接著往下捲,有個 Properties 的欄位,這是給 QML 腳本語言看的。寫 C++ 時可以略過此部分。
再往下的「Public Functions」這部份就非常重要囉,這裡是 Qt 設計給我們呼叫的公開成員函數,QWidget 的可用功能都列在這裡。點擊函數名稱可以深入閱讀。
看到 QWidget 的這個落落長的成員函數清單,就知道我們這系列教學真的只提到九牛一毛,還有很多可以發掘的設定和功能。但是看到這個大清單,也不用太害怕,API 這種東西需要用到再查就好了。
再往下,就是 Qt 特有的信號槽機制囉。
這裡可以查到 QWidget 會發射哪些信號(signal),發射的場合時機,以及可以連接的槽(slot)。
再往下有一欄叫做 Detailed Description ,這個部份詳細說明本物件的用途、基本概念、以及慣常用法。通常也是相當重要的一個章節。
經過這樣子稍微說明,可以得知 Qt 的文件真的寫得很詳盡以也很好查。多查文件,可以學到更多東西。