Qt之標準對話方塊(顏色對話方塊)
阿新 • • 發佈:2019-02-13
顏色對話方塊
目錄
顏色對話方塊
1、在標頭檔案中包含 #include < QColorDialog >
void Widget::on_ColorButton_clicked()
{
QColor color = QColorDialog::getColor(Qt::red,this,
tr("顏色對話方塊!"));
qDebug()<<"color: "<<color;
}
這裡使用了QColorDialog的靜態函式getColor()來獲取顏色,它的三個引數的作用分別是:設定初始顏色、指定父視窗和設定對話方塊標題。
getColor()函式返回一個QColor型別資料。
實現效果如下:
直接單擊OK,輸出資訊應該是 QColor(ARGB 1, 1, 0, 0) ,這裡的4個數分別代表:透明度(alpha)、紅色(red)、綠色(green)、藍色(blue)它們的數值都是從 0.0~1.0 ,有效數字為6位。對於alpha來說,1.0表示完全不透明,而0.0表示完全透明。對於三基色的數值還可以用 0~255 來表示。
顏色對話方塊(顯示透明度)
void Widget::on_ColorButton_clicked()
{
QColor color = QColorDialog::getColor(Qt::red,this,
tr("顏色對話方塊!" ),
QColorDialog::ShowAlphaChannel);
qDebug()<<"color: "<<color;
}
在顏色對話方塊中還可以新增對alpha的設定,就是在getColor()函式中再使用最後一個引數。這裡的 QColorDialog::ShowAlphaChannel 用來顯示alpha設定。
實現效果如下(紅色框住地方作為區別處):
顏色對話方塊(更加靈活的設定)
void Widget::on_ColorButton_clicked ()
{
//建立物件
QColorDialog dialog(Qt::red,this);
//顯示alpha選項
dialog.setOption(QColorDialog::ShowAlphaChannel);
//以模態方式執行對話方塊
dialog.exec();
//獲取當前顏色
QColor color = dialog.currentColor();
//輸出顏色資訊
qDebug()<<"color:"<<color;
}
前面使用 QColorDialog 類的靜態成員函式來直接顯示顏色對話方塊,好處是不用建立物件。但是如果想要靈活的設定,則可以先建立物件,然後進行各項設定。