Qt學(xué)習(xí)筆記之QPalette調(diào)色板類
QPalette通過獲取控件或窗口的調(diào)色板對象(palette)對該控件或窗口進行色彩設(shè)置
可設(shè)置該widget不同狀態(tài)的色彩(ColorGroup):
QPalette::Active 獲得焦點的狀態(tài)下
QPalette::inactive 未獲得焦點的狀態(tài)下
QPalette::Disable 不可用的狀態(tài)下
設(shè)置不同部位的顏色(ColorRole):
QPalette::Window 對窗體的背景顏色進行設(shè)置
QPalette::WindowText 對窗體中的文字(比如Label中的文字進行設(shè)置,無法影響Edit
QPalette::Button 對按鈕進行設(shè)置(但貌似無法動態(tài)更新,直接使用無效果
QPalette::ButtonText 對按鈕文字的顏色進行設(shè)置(QPushButton,QComboBox的小三角
QPalette::Base 主要用于文本輸入小部件的背景顏色(QComboBox的下拉列表背景色也會更改
函數(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ā)與實例(第三版)》 的一個例子
效果圖:

貼一下 顏色選擇ComboBox的代碼
#include "combobox.h"
ComboBox::ComboBox(QWidget * parent)
:QComboBox(parent)
{
QStringList list = QColor::colorNames();//獲取顏色列表
for(QString str : list){
QPixmap pix(QSize(70, 20)); //圖像對象
pix.fill(QColor(str)); //填充顏色
addItem(QIcon(pix), str); //添加進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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Qt圖形圖像開發(fā)之高性能曲線圖模塊QCustomplot庫詳細使用方法與實例(支持動、靜曲線圖)
- Qt實現(xiàn)鬧鐘小程序
- Qt股票組件之自選股列表拖拽、右鍵常用菜單功能的實現(xiàn)
- Qt自定義表頭實現(xiàn)過濾功能的方法
- 如何為Qt視圖中的文字實現(xiàn)彩虹漸變效果
- Qt學(xué)習(xí)教程之對話框消失動畫效果
- Qt學(xué)習(xí)教程之表格控件螞蟻線詳解
- Qt 使用Poppler實現(xiàn)pdf閱讀器的示例代碼
- Qt實現(xiàn)保存、瀏覽、預(yù)覽、打印功能的示例代碼
- Qt圖形圖像開發(fā)之曲線圖模塊QCustomplot庫生成靜態(tài)、動態(tài)曲線詳細教程圖解
相關(guān)文章
詳解C語言中的錯誤報告errno與其相關(guān)應(yīng)用方法
這篇文章主要介紹了C語言中的錯誤報告errno與其相關(guān)應(yīng)用方法,包括errno和strerror以及perror的介紹,需要的朋友可以參考下2015-08-08
C/C++?Qt?TreeWidget?單層樹形組件應(yīng)用小結(jié)
TreeWidget?目錄樹組件,該組件適用于創(chuàng)建和管理目錄樹結(jié)構(gòu),在開發(fā)中我們經(jīng)常會把它當(dāng)作一個升級版的ListView組件使用,本文將通過TreeWidget實現(xiàn)多字段顯示,并增加一個自定義菜單,通過在指定記錄上右鍵可彈出該菜單并對指定記錄進行操作2021-11-11
C語言代碼實現(xiàn)學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細介紹了C語言代碼實現(xiàn)學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06

