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

QColorDialog使用方法
例如下面的代碼,點(diǎn)擊按鈕彈出顏色選擇框,選擇顏色,改變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());
第一個(gè)參數(shù)是默認(rèn)的顏色,例如我在上面的代碼中,直接設(shè)為白色
第二個(gè)參數(shù)是父窗口指針
第三個(gè)是顏色對(duì)話框窗口標(biāo)題
QPalette setColor
setColor的聲明如下:
inline void QPalette::setColor(ColorRole acr, const QColor &acolor)
可以使用QColorDialog返回的顏色直接構(gòu)造QPalette,注意setColor的第一個(gè)參數(shù)需要一個(gè)ColorRole, 可以參看如下說(shuō)明:
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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中的三種繼承public,protected,private詳細(xì)解析
我們已經(jīng)知道,在基類以private方式被繼承時(shí),其public和protected成員在子類中變?yōu)閜rivate成員。然而某些情況下,需要在子類中將一個(gè)或多個(gè)繼承的成員恢復(fù)其在基類中的訪問(wèn)權(quán)限2013-09-09
Matlab利用垂距法實(shí)現(xiàn)提取離散坐標(biāo)數(shù)據(jù)特征點(diǎn)
垂距法是指根據(jù)中間頂點(diǎn)到其前、后兩相鄰頂點(diǎn)連線的距離的大小,來(lái)確定是否保留該頂點(diǎn)的一種線要素頂點(diǎn)壓縮算法。本文將利用這一算法實(shí)現(xiàn)提取離散坐標(biāo)數(shù)據(jù)特征點(diǎn),需要的可以參考下2022-04-04
如何實(shí)現(xiàn)在C++中調(diào)用C函數(shù)
這篇文章主要介紹了如何實(shí)現(xiàn)在C++中調(diào)用C函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
C++實(shí)現(xiàn)將輸入復(fù)制到輸出的方法
這篇文章主要介紹了C++實(shí)現(xiàn)將輸入復(fù)制到輸出的方法,實(shí)例分析了C++字符串轉(zhuǎn)換及輸入輸出操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
C++實(shí)現(xiàn)utf8字符串和gbk字符串互轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)utf8字符串和gbk字符串轉(zhuǎn)換的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
C語(yǔ)言實(shí)現(xiàn)車輛信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)車輛信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

