Qt编程18:Qt调色板QPalette的使用

简介:

QPalette类有两个枚举类型,

枚举

1、ColorGroup

  CorGroup指的是3中不同的状态(什么时候设置颜色):

   1>Active:获得焦点的状态。

   2>Inactive:未获得焦点的状态。

   3>Disable:不可用状态。

通常情况下。Active状态与Inactive状态下颜色显示是一致的。当然也可依据须要设置成不一样的颜色

 

2、ColorRole(设置什么颜色)。
  ColorRole指的是颜色主题。即对窗口中不同部位颜色的分类,如QPalette::Window是指背景色,QPalette::WindowText指的是前景色等。

  经常使用:

  QPalete::Window, 通常指窗体部件的背景色;
  QPalette:WindowText,通常指窗体不见的前景色(QLabel也能够使用);
  QPalette::Base,指文本输入窗体部件(比方QTextEdit,QLinedit,QPlainTextEdit等)的背景色
  QPalette::Text,与QPalette::Base一块使用,指文本输入窗体部件的前景色;
  QPalette::Button,指button窗体部件的背景色;
  QPalette::ButtonText,指button窗体部件的前景色

  QPalette::Highlight:用于设置文字高亮时的背景颜色

  QPalette::HighlightedText:用于设置文字高亮时的颜色

  QPalette::Link:超链接文字颜色

  QPalette::LinkVisted:超链接文字訪问后的颜色

 

  (眼下使用的非常少,可是能够直接拿来用)由于,带有默认色

  QPalette::Light:比Button的亮

 QPalette::Midlight:亮度在Light与Button之间

  QPalette::Dark:

  QPalette::Mid

  QPalette::Shadow

比如:

    //设置能够自己主动填充背景色
    ui->label->setAutoFillBackground(true);
    //设置背景色为Palette::Shadow
    ui->label->setBackgroundRole(QPalette::Shadow);
    
    ui->label2->setAutoFillBackground(true);
    ui->label2->setBackgroundRole(QPalette::Light)


显示效果:

 

//----------------------------------------------------------------------------------------------------------------设置颜色的方法:

QPalette::setColor()针对某个ColoRole设置颜色
QPalette::setBrush()针对某个ColoRole设置颜色。能够设置图片

 

注意:在设置背景色的时候,首先调用setAutoFillBackGround(true)。

 

button使用调色板

//对button使用palette----------
    //设置button字体
    ui->toolBt->setFont(QFont("宋体",20,QFont::Bold));
    ui->toolBt->setAutoRaise(true);
    ui->toolBt->setAutoFillBackground(true);
    QPalette pl = ui->toolBt->palette();

    //设置button文字颜色
    pl.setColor(QPalette::ButtonText,QColor(Qt::red));
    //使用setBrush设置图片
    pl.setBrush(QPalette::Button,QBrush(QPixmap(":/new/resources/otherPage/tap_bg.png")));
    ui->toolBt->setPalette(pl);


效果:

 

QTextBrowser或QTextEdit使用调色板(文字编辑框)

    //设置部件文字属性
    ui->plainTextEdit->setFont(QFont("宋体",20,QFont::Bold));     //有效果
    ui->textBrowser->setFont(QFont("宋体",20,QFont::Bold));       //没有效果(QTextBrowser带有文字编辑功能)
    QFont font = ui->textBrowser->font();
    font.setCapitalization(QFont::AllUppercase);
    ui->textBrowser->setFont(font);                               //有效果

    //构造QPalette对象
    QPalette p2;
    //设置文本编辑框的背景色
    p2.setColor(QPalette::Base,QColor(Qt::gray));
    //设置文本编辑框文字的颜色
    p2.setColor(QPalette::Text,QColor(Qt::red));
    //设置文本编辑框高亮时的文字背景颜色(Active)
    p2.setColor(QPalette::Active,QPalette::Highlight,QColor(Qt::white));
    //设置文本编辑框高亮时文字的颜色(Active)
    p2.setColor(QPalette::Active,QPalette::HighlightedText,QColor(Qt::blue));

    //为保持文本状态一致(好看一些),在丢失焦点的时候设置颜色
    p2.setColor(QPalette::Inactive,QPalette::Highlight,QColor(Qt::gray));
    p2.setColor(QPalette::Inactive,QPalette::HighlightedText,QColor(Qt::red));

    //将焦点应用到控件
    ui->plainTextEdit->setPalette(p2);
    ui->textBrowser->setPalette(p2);

实现效果:





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5363829.html,如需转载请自行联系原作者

相关文章
|
29天前
|
存储 网络协议 C语言
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
77 0
|
1月前
|
Linux 数据处理 C++
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(一)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
71 0
|
1月前
|
Linux API C语言
Qt串口编程探究:理论与实践
Qt串口编程探究:理论与实践
63 1
|
1月前
|
存储 Linux API
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(三)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
31 1
|
1月前
|
消息中间件 Linux 数据处理
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(二)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
32 1
|
1月前
|
存储 并行计算 安全
【Qt 线程】探索Qt线程编程的奥秘:多角度深入剖析(二)
【Qt 线程】探索Qt线程编程的奥秘:多角度深入剖析
58 0
|
5月前
关于Qt的pri模块化编程详解
今天在移植一份代码的时候遇到了了Qt的`pri`文件,在CSDN上看了一下怎么用,都告诉我新建文件夹,直接Ctrl+S的,试了半天不行,看了一下需要移植的代码,茅塞顿开,分享给大家详细过程。
|
1月前
|
负载均衡 并行计算 安全
【Qt 线程】探索Qt线程编程的奥秘:多角度深入剖析(三)
【Qt 线程】探索Qt线程编程的奥秘:多角度深入剖析
44 0
|
1月前
|
安全 数据处理 API
【Qt 线程】探索Qt线程编程的奥秘:多角度深入剖析(一)
【Qt 线程】探索Qt线程编程的奥秘:多角度深入剖析
83 0
|
1月前
|
SQL 存储 关系型数据库
【C/C++ 应用开发 数据库】入门 Qt数据库编程:从基本操作到高级技巧
【C/C++ 应用开发 数据库】入门 Qt数据库编程:从基本操作到高级技巧
74 0