Qt 之路 (16)—標準對話框之QColorDialog

       繼續來說Qt的標準對話框,這次說說QColorDialog。這是Qt提供的顏色選擇對話框。使用QColorDialog也很簡單,Qt提供了getColor()函數,類似於QFileDialog的getOpenFileName(),可以直接獲得選擇的顏色。我們還是使用前面的QAction來測試下這個函數:   

  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哦!這段代碼雖然很少,但是內容並不少。
  第一行QColorDialog::getColor()調用了QColorDialog的static函數getColor()。這個函數有兩個參數,第一個是             QColor類型,是對話框打開時默認選擇的顏色,第二個是它的parent。
  第二行比較長,涉及到QString的用法。如果我沒記錯的話,這些用法還沒有提到過,本着“有用就說”的原則,儘管     這些和QColorDialog毫不相干,這裏還是解釋一下。QString(“r: %1, g: %2, b: %3″)創建了一個QString對象。我們使   用了參數化字符串,也就是那些%1之類。在Java的properties文件中,字符參數是用{0}, {1}之類實現的。其實這都     是一些佔位符,也就是,後面會用別的字符串替換掉這些值。佔位符的替換需要使用QString的arg()函數。這個函數   會返回它的調用者,因此可以使用鏈式調用寫法。它會按照順序替換掉佔位符。然後是QString::number()函數,這     也是QString的一個static函數,作用就是把int、double等值換成QString類型。這裏是把QColor的R、G、B三個值輸   出了出來。關於QString類,我們會在以後詳細說明。
  第三行就比較簡單了,使用一個消息對話框把剛剛拼接的字符串輸出。
  現在就可以運行這個測試程序了。看上去很簡單,不是嗎?
  QColorDialog還有一些其他的函數可以使用。
  QColorDialog::setCustomColor()可以設置用戶自定義顏色。這個函數有兩個值,第一個是自定義顏色的索引,第二     個是自定義顏色的RGB值,類型是QRgb,大家可以查閱API文檔來看看這個類的使用,下面只給出一個簡單的用       發:
   QColorDialog::setCustomColor(0, QRgb(0x0000FF));
   getColor()
   //還有一個重載的函數,簽名如下:
   QColorDialog::getColor( const QColor & initial, QWidget * parent, const QString & title, ColorDialogOptions options    = 0 )
  第一個參數initial和前面一樣,是對話框打開時的默認選中的顏色;
  第二個參數parent,設置對話框的父組件;
  第三個參數title,設置對話框的title;
  第四個參數options,是QColorDialog::ColorDialogOptions類型的,可以設置對話框的一些屬性,如是否顯示Alpha     值等,具體屬性請查閱API文檔。特別的,這些值是可以使用OR操作的。
  QColorDialog相對簡單一些,API文檔也很詳細,大家遇到問題可以查閱文檔的哦!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章