W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
繼續(xù)來說 Qt 的標(biāo)準(zhǔn)對話框,這次說說 QColorDialog。這是 Qt 提供的顏色選擇對話框。
使用 QColorDialog 也很簡單,Qt 提供了 getColor()函數(shù),類似于 QFileDialog 的getOpenFileName(),可以直接獲得選擇的顏色。我們還是使用前面的 QAction 來測試下這個(gè)函數(shù):
QColor color = QColorDialog::getColor(Qt::white, this);
QString msg = QString("r: %1, g: %2, b: %3").arg(QString::number(color.red()), QString::number(color.green()), QString::number(color.blue()));
QMessageBox::information(NULL, "Selected color", msg);
不要忘記 include QColorDialog 哦!這段代碼雖然很少,但是內(nèi)容并不少。
第一行 QColorDialog::getColor()調(diào)用了 QColorDialog 的 static 函數(shù) getColor()。這個(gè)函數(shù)有兩個(gè)參數(shù),第一個(gè)是 QColor 類型,是對話框打開時(shí)默認(rèn)選擇的顏色,第二個(gè)是它的 parent。
第二行比較長,涉及到 QString 的用法。如果我沒記錯(cuò)的話,這些用法還沒有提到過,本著“有用就說”的原則,盡管這些和 QColorDialog 毫不相干,這里還是解釋一下。QString("r: %1, g: %2, b: %3")創(chuàng)建了一個(gè) QString 對象。我們使用了參數(shù)化字符串,也就是那些%1之類。在 Java 的properties 文件中,字符參數(shù)是用{0}, {1}之類實(shí)現(xiàn)的。其實(shí)這都是一些占位符,也就是,后面會(huì)用別的字符串替換掉這些值。占位符的替換需要使用 QString 的 arg()函數(shù)。這個(gè)函數(shù)會(huì)返回它的調(diào)用者,因此可以使用鏈?zhǔn)秸{(diào)用寫法。它會(huì)按照順序替換掉占位符。然后是 QString::number()函數(shù),這也是 QString 的一個(gè) static 函數(shù),作用就是把 int、double 等值換成 QString 類型。這里是把QColor 的 R、G、B 三個(gè)值輸出了出來。關(guān)于 QString 類,我們會(huì)在以后詳細(xì)說明。
第三行就比較簡單了,使用一個(gè)消息對話框把剛剛拼接的字符串輸出。
現(xiàn)在就可以運(yùn)行這個(gè)測試程序了??瓷先ズ芎唵危皇菃??
QColorDialog 還有一些其他的函數(shù)可以使用。
QColorDialog::setCustomColor()可以設(shè)置用戶自定義顏色。這個(gè)函數(shù)有兩個(gè)值,第一個(gè)是自定義顏色的索引,第二個(gè)是自定義顏色的 RGB 值,類型是 QRgb,大家可以查閱 API 文檔來看看這個(gè)類的使用,下面只給出一個(gè)簡單的用發(fā):
QColorDialog::setCustomColor(0, QRgb(0x0000FF));
getColor()還有一個(gè)重載的函數(shù),簽名如下:
QColorDialog::getColor( const QColor & initial, QWidget * parent, const QString & title, ColorDialogOptions options = 0 )
第一個(gè)參數(shù) initial 和前面一樣,是對話框打開時(shí)的默認(rèn)選中的顏色;
第二個(gè)參數(shù) parent,設(shè)置對話框的父組件;
第三個(gè)參數(shù) title,設(shè)置對話框的 title;
第四個(gè)參數(shù) options,是 QColorDialog::ColorDialogOptions 類型的,可以設(shè)置對話框的一些屬性,如是否顯示 Alpha 值等,具體屬性請查閱 API 文檔。特別的,這些值是可以使用 OR 操作的。
QColorDialog 相對簡單一些,API 文檔也很詳細(xì),大家遇到問題可以查閱文檔的哦!
本文出自 “豆子空間” 博客,請務(wù)必保留此出處 http://devbean.blog.51cto.com/448512/194031
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: