Qt中提供了一些標准的對話框,用於實現一些常用的預定義功能,比如本節中將要介紹的顏色對話框——QColorDialog。
在不同的系統平台下,顏色對話框的顯示效果可能會有所不同,主要因系統主題風格而異,但是功能是相同的,顯示效果如下:
查看幫助文檔的話,我們可以看到這個類提供的方法還是很多的,但是我們一般情況下用到的也就一個靜態的成員方法:getColor(),該函數的原型如下:
1 QColor QColorDialog::getColor(const QColor & initial = Qt::white, QWidget * parent = 0, const QString & title = QString(), ColorDialogOptions options = 0) [static]
通過該方法可以返回一個QColor值,但是如果用戶單擊“Cancel”按鈕的話,就可以返回一個非法的顏色值,因此我們需要調用QColor::isValid()方法來判斷這個顏色值是否正確。下面給出一段完整的代碼:
1 void UserSettingWindow::changeColorBtnClickedSlot() 2 { 3 QColor color = QColorDialog::getColor(Qt::black); 4 5 if (color.isValid()) 6 { 7 qDebug() << color.redF() << color.greenF() << color.blueF(); 8 } 9 }
以上是一個響應槽函數的代碼,如果得到合法的顏色值,就通過qDebug()輸出。此外,這里的QColor類提供了一些獲取顏色值的方法比如獲取三個通道的getRgb()和getRgbF()函數,以及獲取單個通道顏色的red(),redF(),green(),greenF(),blue()和blueF()函數,使用十分方便,具體的細節請查看幫助手冊。