Qt裏面定義了大量的枚舉類型,有些類型的內部元素可以並列的。例如Qt::AlignmentFlag類型,包括
The vertical flags are:
我們可以用Qt::AlignTop | Qt::AlignLeft 來表示左上角。假設一個函數接受位置作爲參數,那麼一般來說我們需要把這個函數的參數定義成int類型。這樣就造成傳遞給函數的參數非法(132),但是函數卻不能靜態檢查出來。把錯誤留給了運行階段。 Qt定義了一個Flag的類,對於一個enum類型,通過聲明 Q_DECLARE_FLAGS ( Flags, Enum ) 就會定義一個新的類型Flags。上面的函數就可以用Flags做參數了。 Q_DECLARE_FLAGS ( Flags, Enum ) 擴展成了 typedef QFlags<Enum> Flags; 例如:Qt::AlignmentFlag 就定義了Qt::Alignment作爲它的Flags。在使用的時候我們直接定義 |
QFlags
Qt 的QFlags類型
2009-03-12 10:07
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.