程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Qt學習之路(16):Qt標准對話框之QColorDialog

Qt學習之路(16):Qt標准對話框之QColorDialog

編輯:關於C++

繼續來說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::( const QColor & initial, QWidget * parent, const QString & title, ColorDialogOptions options = 0 )

第一個參數initial和前面一樣,是對話框打開時的默認選中的顏色;

第二個參數parent,設置對話框的父組件;

第三個參數title,設置對話框的title;

第四個參數options,是QColorDialog::ColorDialogOptions類型的,可以設置對話框的一些屬性,如是否顯示Alpha值等,具體屬性請查閱API文檔。特別的,這些值是可以使用OR操作的。

QColorDialog相對簡單一些,API文檔也很詳細,大家遇到問題可以查閱文檔的哦!

出處:http://devbean.blog.51cto.com/448512/214164

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved