当前位置:网站首页>Qt | 关于QPalette的使用
Qt | 关于QPalette的使用
2022-08-02 15:06:00 【华为云】
前言:
Qt中的每个部件都包含一个调色板(QPalette),它们使用各自的调色板来绘制它们自身,这样可以使用户界面更容易配置,也更容易保持一致。
QPalette通过使用setColor()函数进行颜色设置:
void QPalette::setColor(ColorRole role, const QColor &color );
void QPalette::setColor(ColorGroup group, ColorRole role, const QColor &color );
颜色组(ColorGroup):
调色板QPalette类包括了部件各种状态的颜色组。一个调色板包含3种状态:激活(Active)、非激活(Inactive)和失效(Disabled)。
激活颜色组QPalette::Active,用于获得键盘焦点的窗口;
非激活颜色组QPalette::Inactive,用于其他没有获得键盘焦点的窗口;
失效颜色组QPalette::Disabled,用于因为一些原因而不可用的部件(不是窗口)。
要改变一个应用程序的调色板,可以先使用QApplication::palette()函数来获取其调色板,然后进行更改,最后使用QApplication::setPalette()函数来使用该调色板。更改了应用程序的调色板会影响到该程序的所有窗口部件。
如果想要只改变一个部件的调色板,则可以调用该部件的palette()和setPalette()函数,这样只会影响该部件及其子部件。
使用方法:
//设置spinBox(选值框)不可用
ui->spinBox->setDisabled(true);
//获取spinBox的调色板
QPalette palette = ui->spinBox->palette();
//设置spinBox不可用时的背景色为蓝色
palette.setColor(QPalette::Disabled, QPalette::Base, Qt::blue);
//spinBox使用修改后的调色板
ui->spinBox->setPalette(palette);
颜色角色(ColorRole):
设置调色板颜色时,可以使用setColor()函数,这个函数需要指定颜色角色。在QPalette中,颜色角色用来指定该颜色所起的作用,如背景颜色或是文本颜色等。
QPalette::Window,一般的背景颜色;
QPalette::WindowText,一般的前景颜色;
QPalette::Base,主要作为输入部件(如QLineEdit)的背景色,也可用作QComboBox的下拉列表的背景颜色或者QToolBar的Handle颜色,一般是白色或者其他浅色;
QPalette::Text,和Base一起使用,作为前景色;
QPalette::AlternateBase,在交替颜色的视图中作为交替背景色;
QPalette::ToolTipBase,作为QToolTip和QWhatsThis的背景色;
QPalette::ToolTipText,作为QToolTip和QWhatsThis的前景色;
QPalette::Button,按钮部件背景色;
QPalette::ButtonText,按钮部件前景色;
QPalette::BrightText,一种与深色对比度较大的文本颜色,一般用于当Text或者WindowText的对比度较差时。
使用方法:
//获取pushButton的调色板
QPalette palette = ui->pushButton->palette();
//设置pushButton按钮文本颜色为红色
palette.setColor(QPalette::ButtonText, Qt::red);
//设置pushButton按钮背景颜色为绿色
palette.setColor(QPalette::Button, Qt::green);
//pushButton使用修改后的调色板
ui->pushButton->setPalette(palette);
边栏推荐
猜你喜欢
随机推荐
Qt | 设置部件大小 sizeHint、minimumSizeHint、sizePolicy、stretch factor
【学习笔记之菜Dog学C】自定义类型详解(结构体+枚举+联合)
Qt | QWidget 的一些总结
NXP i.MX 8M Mini工业核心板B2B版本,4核ARM [email protected]设计
性能测试详解(理论篇)
Apache management and web optimization
Qt | 模态对话框和非模态对话框 QDialog
mysql 索引使用与优化
CS5210的参数详情资料分享
23、wpf之布局(一)
form的编辑与展示的切换(输入框,单选多选框,上传图片,颜色选择器)适用个人信息的展示与修改
Qt | 关于对象树和元对象的相关问题
快速搞懂Seata分布式事务AT、TCC、SAGA、XA模式选型
2022 Low Voltage Electrician Exam Questions and Online Mock Exam
ACL/NAACL'22 推荐系统论文梳理
PAT Grade A 1143 Lowest Common Ancestor
esp32之arduino配置下载提速
动态权重之多任务不平衡论文 (二) MetaBalance
MySQL查询
Qt | 通过创建一个简单项目了解 Qt Creator









