关于 QPalette 的使用
前言:
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()函数,这样只会影响该部件及其子部件。
使用方法:
颜色角色(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 的对比度较差时。
使用方法:
版权声明: 本文为 InfoQ 作者【YOLO.】的原创文章。
原文链接:【http://xie.infoq.cn/article/1483cf158277d22c2853a1773】。未经作者许可,禁止转载。
评论