QPalette

QPalette类专门用于管理对话框的外观显示。如背景,文字颜色等。
每个窗体或控件都包含一个QPalette对象。在显示时,按照它的QPalette对象中对各部分各状态下的颜色的描述进行绘制。
QPalette类主要有两个基本概念:ColorGroup,ColorRole。

ColorGroup是指控件的三种状态:
QPalette::Active 获得焦点状态
QPalette::Inactive 未获得焦点状态
QPalette::Disable 不可用状态
ColorRole指的是颜色主题:
QPalette::Window指背景色
QPalette::WindowText指前景色

QPalette类中使用最多的成员函数是setColor()函数
void Palette::setColor(ColorGroup group,ColorRole role,const QColor &color);
对主题颜色设置的同时还区分状态,即对某个主题在某个状态下的颜色进行设置:
void Palette::setColor(ColorRole role,const QColor &color);
QPalette类同时还设置了setBrush()函数,通过画刷的设置对显示进行更改,这样就有可能使用图片而不仅是单一的颜色对主题进行填充。

QPalette设置背景色的方法:
setAutoFillBackground(true);//设置窗体自动填充背景。

如果并不使用单一的颜色填充背景,则可将setColor()函数替换为setBrush对背景进行设置。

QComboBox *windowComboBOx=new QComboBOx;
fillColorList(QComboBOx*comboBox);
connect(windowComboBox,SIGNAL(activated(int)),this,SLOT(ShowWindow()));
void ShowWindow()
{
QStringList colorList=QColor::colorNames();//返回Qt知道的所有颜色的名字。
QColor color=QCOlor(colorList[windowComboBox->currentIndex()]);
QPalette p=contentFrame->palette();//contentFrame是QFrame对象。
p.setColor(QPalette::Window,color);
contentFrame->setPalette(p);
contentFrame->uodate();
}
void fillColorList(QComboBox *comboBox)
{
QStringList colorList=QColor::colorNames();
QStirng color;
foreach(color,colorList)
{
QPixmap pix(QSize(70,20));
pix.fill(QColor(color));
comboBox->addItem(QIcon(pix),NUll);//名称设置为空
comboBox->setIconSize(QSize(70,20));
comboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);//设置下拉列表框的尺寸为内容尺寸。
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值