第四十七课、Qt中的调色板------------------狄泰软件学院
一、Qt中的调色板
1、QPalette类包含了组件状态的颜色组
2、QPalette对象包含三个状态的颜色描述(即选择那个组件、不选中那个组件、禁用那个组件)
(1)、激活颜色组(Active):组件获得焦点使用的颜色搭配方案
(2)、非激活颜色组(Inactive):组件失去焦点使用的颜色方案
(3)、失效颜色组(Disable):组件处于不可用状态使用颜色方案
3、QPalette中的颜色组定义了组细节的颜色值
4、QPalette::ColorRole中常量值用于标识组件细节
5、理解Qt中的调色板
(1)、调色板是存储组件颜色的数据结构
(2)、组件外观使用的颜色都定于调色板中
6、调色板的使用方式
#include "Widget.h" #include <QPushButton> #include <QLabel> #include <QLineEdit> #include <QHBoxLayout> #include <QVBoxLayout> #include <QDebug> #include <QPalette> Widget::Widget(QWidget *parent) : QWidget(parent) { Btn.setText("Button"); Lbl.setText("Tabel"); hLayout.addWidget(&Lbl); hLayout.addWidget(&edit); vLayout.addLayout(&hLayout); vLayout.addWidget(&Btn); setLayout(&vLayout); connect(&Btn, SIGNAL(clicked()), this, SLOT(onButtonClicked())); QPalette pBtn = Btn.palette();//1.取出 pBtn.setColor(QPalette::Active,QPalette::ButtonText,Qt::red);//2.设置 pBtn.setColor(QPalette::Inactive,QPalette::ButtonText,Qt::red); Btn.setPalette(pBtn);//3.设置回去 } void Widget::onButtonClicked() { QPalette pLbl = Lbl.palette(); pLbl.setColor(QPalette::Active, QPalette::QPalette::WindowText, Qt::yellow); pLbl.setColor(QPalette::Inactive, QPalette::QPalette::WindowText, Qt::yellow); Lbl.setPalette(pLbl); qDebug() << "Hello"; } Widget::~Widget() { }
编辑窗口那里文本编辑器:UI文件
二、小结
(1)、QPalette是Qt中标识颜色信息的数据结构
(2)、窗口组件内部都拥有QPalette对象
(3)、重新设置调色板的值能够改变特定区域的颜色
(4)、QPalette对象是定制组件外观的重要角色
本文作者:lgc202
本文链接:https://www.cnblogs.com/gui-lin/p/6422278.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
Qt实验分析
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步