C++ Qt QColorDialog使用方法
Qt提供了顏色選擇框,如下圖:

QColorDialog使用方法
例如下面的代碼,點擊按鈕彈出顏色選擇框,選擇顏色,改變QLabel的背景色
#include "widget.h"
#include "ui_widget.h"
#include <QColorDialog>
#include <QPalette>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
ui->label->setText(u8"我是lable");
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_btn1_clicked()
{
QColor color = QColorDialog::getColor(Qt::white, this, u8"選擇顏色");
if(color.isValid())
{
QPalette palette;
palette.setColor(QPalette::Background ,color);
ui->label->setAutoFillBackground(true);
ui->label->setPalette(palette);
}
}
效果如下:

getColor的調(diào)用
getColor聲明如下:
static QColor getColor(const QColor &initial = Qt::white,
QWidget *parent = nullptr,
const QString &title = QString(),
ColorDialogOptions options = ColorDialogOptions());
第一個參數(shù)是默認的顏色,例如我在上面的代碼中,直接設(shè)為白色
第二個參數(shù)是父窗口指針
第三個是顏色對話框窗口標題
QPalette setColor
setColor的聲明如下:
inline void QPalette::setColor(ColorRole acr, const QColor &acolor)
可以使用QColorDialog返回的顏色直接構(gòu)造QPalette,注意setColor的第一個參數(shù)需要一個ColorRole, 可以參看如下說明:
enum ColorRole { WindowText, Button, Light, Midlight, Dark, Mid,
Text, BrightText, ButtonText, Base, Window, Shadow,
Highlight, HighlightedText,
Link, LinkVisited,
AlternateBase,
NoRole,
ToolTipBase, ToolTipText,
PlaceholderText,
NColorRoles = PlaceholderText + 1,
#if QT_DEPRECATED_SINCE(5, 13)
Foreground Q_DECL_ENUMERATOR_DEPRECATED_X("Use QPalette::WindowText instead") = WindowText,
Background Q_DECL_ENUMERATOR_DEPRECATED_X("Use QPalette::Window instead") = Window
#endif
};
例如上面的代碼是修改Label的背景顏色,那么就需要使用Background枚舉體,如果改變文本就使用Text.
到此這篇關(guān)于C++ Qt QColorDialog使用方法的文章就介紹到這了,更多相關(guān) Qt QColorDialog內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中的三種繼承public,protected,private詳細解析
我們已經(jīng)知道,在基類以private方式被繼承時,其public和protected成員在子類中變?yōu)閜rivate成員。然而某些情況下,需要在子類中將一個或多個繼承的成員恢復(fù)其在基類中的訪問權(quán)限2013-09-09
Matlab利用垂距法實現(xiàn)提取離散坐標數(shù)據(jù)特征點
垂距法是指根據(jù)中間頂點到其前、后兩相鄰頂點連線的距離的大小,來確定是否保留該頂點的一種線要素頂點壓縮算法。本文將利用這一算法實現(xiàn)提取離散坐標數(shù)據(jù)特征點,需要的可以參考下2022-04-04
如何實現(xiàn)在C++中調(diào)用C函數(shù)
這篇文章主要介紹了如何實現(xiàn)在C++中調(diào)用C函數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
C++實現(xiàn)utf8字符串和gbk字符串互轉(zhuǎn)
這篇文章主要為大家詳細介紹了C++實現(xiàn)utf8字符串和gbk字符串轉(zhuǎn)換的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-02-02

