Qt學(xué)習(xí)筆記之QPalette調(diào)色板類
QPalette通過獲取控件或窗口的調(diào)色板對(duì)象(palette)對(duì)該控件或窗口進(jìn)行色彩設(shè)置
可設(shè)置該widget不同狀態(tài)的色彩(ColorGroup):
QPalette::Active 獲得焦點(diǎn)的狀態(tài)下
QPalette::inactive 未獲得焦點(diǎn)的狀態(tài)下
QPalette::Disable 不可用的狀態(tài)下
設(shè)置不同部位的顏色(ColorRole):
QPalette::Window 對(duì)窗體的背景顏色進(jìn)行設(shè)置
QPalette::WindowText 對(duì)窗體中的文字(比如Label中的文字進(jìn)行設(shè)置,無法影響Edit
QPalette::Button 對(duì)按鈕進(jìn)行設(shè)置(但貌似無法動(dòng)態(tài)更新,直接使用無效果
QPalette::ButtonText 對(duì)按鈕文字的顏色進(jìn)行設(shè)置(QPushButton,QComboBox的小三角
QPalette::Base 主要用于文本輸入小部件的背景顏色(QComboBox的下拉列表背景色也會(huì)更改
函數(shù):
用于設(shè)置單一顏色:
void QPalette::setColor(ColorGroup group, ColorRole role, const QColor &color)
void QPalette::setColor(ColorRole role, const QColor &color)
用于設(shè)置多樣性的顏色(圖片背景,漸變之類:
void QPalette::setBrush(ColorGroup group, ColorRole role, const QBrush &brush)
void QPalette::setBrush(ColorRole role, const QBrush &brush)
來自 《Qt5開發(fā)與實(shí)例(第三版)》 的一個(gè)例子
效果圖:
貼一下 顏色選擇ComboBox的代碼
#include "combobox.h" ComboBox::ComboBox(QWidget * parent) :QComboBox(parent) { QStringList list = QColor::colorNames();//獲取顏色列表 for(QString str : list){ QPixmap pix(QSize(70, 20)); //圖像對(duì)象 pix.fill(QColor(str)); //填充顏色 addItem(QIcon(pix), str); //添加進(jìn)ComboBox setIconSize(QSize(70,20)); //設(shè)置Icon也就是顏色塊的大小 //設(shè)置comboBox的下拉列表的尺寸調(diào)整策略為符合內(nèi)容大?。ㄗ赃m應(yīng) setSizeAdjustPolicy(QComboBox::AdjustToContents); } }
設(shè)置各部分顏色的槽函數(shù)
void Palette::setWindowColor(QString color) { QPalette palette = this->palette(); palette.setColor(QPalette::Window, QColor(color)); this->setPalette(palette); } void Palette::setWindowTextColor(QString color) { QPalette palette = showFrame->palette(); palette.setColor(QPalette::WindowText, QColor(color)); showFrame->setPalette(palette); } void Palette::setButtonColor(QString color) { QPalette palette = showFrame->palette(); palette.setColor(QPalette::Button, QColor(color)); showFrame->setPalette(palette); showFrame->update(); } void Palette::setBtnTextColor(QString color) { QPalette palette = showFrame->palette(); palette.setColor(QPalette::ButtonText, QColor(color)); showFrame->setPalette(palette); } void Palette::setBaseColor(QString color) { QPalette palette = showFrame->palette(); palette.setColor(QPalette::Base, QColor(color)); showFrame->setPalette(palette); }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Qt圖形圖像開發(fā)之高性能曲線圖模塊QCustomplot庫詳細(xì)使用方法與實(shí)例(支持動(dòng)、靜曲線圖)
- Qt實(shí)現(xiàn)鬧鐘小程序
- Qt股票組件之自選股列表拖拽、右鍵常用菜單功能的實(shí)現(xiàn)
- Qt自定義表頭實(shí)現(xiàn)過濾功能的方法
- 如何為Qt視圖中的文字實(shí)現(xiàn)彩虹漸變效果
- Qt學(xué)習(xí)教程之對(duì)話框消失動(dòng)畫效果
- Qt學(xué)習(xí)教程之表格控件螞蟻線詳解
- Qt 使用Poppler實(shí)現(xiàn)pdf閱讀器的示例代碼
- Qt實(shí)現(xiàn)保存、瀏覽、預(yù)覽、打印功能的示例代碼
- Qt圖形圖像開發(fā)之曲線圖模塊QCustomplot庫生成靜態(tài)、動(dòng)態(tài)曲線詳細(xì)教程圖解
相關(guān)文章
Qt實(shí)現(xiàn)進(jìn)程界面之間的鼠標(biāo)焦點(diǎn)切換
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)進(jìn)程界面之間的鼠標(biāo)焦點(diǎn)切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09C語言 動(dòng)態(tài)內(nèi)存開辟常見問題解決與分析流程
動(dòng)態(tài)內(nèi)存是相對(duì)靜態(tài)內(nèi)存而言的。所謂動(dòng)態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動(dòng)態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存2022-03-03詳解C語言中typedef和#define的用法與區(qū)別
這篇文章主要給大家介紹了關(guān)于C語言中typedef和#define的的用法、區(qū)別,以及陷阱。文中通過示例進(jìn)行了詳細(xì)講解,感興趣的小伙伴可以了解一下2022-07-07馬爾可夫鏈算法(markov算法)的awk、C++、C語言實(shí)現(xiàn)代碼
這篇文章主要介紹了馬爾可夫鏈算法(markov算法)的awk、C++、C語言實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-08-08基于C語言利用哈夫曼樹實(shí)現(xiàn)文件壓縮的問題
哈夫曼編碼是一種編碼方式,又稱“霍夫曼編碼”,其是可變字長的編碼(VCL)的一種,這篇文章主要介紹了基于C語言利用哈夫曼樹實(shí)現(xiàn)文件壓縮,需要的朋友可以參考下2021-08-08