当前位置: 首页 > article >正文

XQT_UI 组件|01|颜色

介绍

XColor 是一个用于处理颜色的类,提供了获取颜色和样式的方法。它可以与 Qt 的 UI 组件结合使用,以便在应用程序中实现丰富的颜色效果。

安装

确保你已经在项目中包含了 xqt_color_palette.hpp 和相关的头文件。

#include "xqt_color_palette.hpp"
#include "xqt_utils.hpp"

创建 XColor 实例

要使用 XColor,首先需要创建一个 ColorPalette 实例,然后可以通过颜色名称获取相应的 XColor 对象。

ColorPalette palette;
XColor color = palette.getColor("red");

获取颜色属性

XColor 提供了多种方法来获取颜色的不同属性,例如背景色和文本色。

QString backgroundColor = color.getBg(); // 获取背景色
QString textColor = color.getText(); // 获取文本色

设置样式

可以使用 XUtils 类中的 replaceStyle 方法来设置 Qt 组件的样式。以下是一个示例,展示如何为 QLabel 设置样式。

QLabel *label = new QLabel("示例标签");
QString newStyle = XUtils::replaceStyle(label->styleSheet(), "background-color", color.getBg());
newStyle = XUtils::replaceStyle(newStyle, "color", color.getText());
label->setStyleSheet(newStyle);

添加阴影效果

XqtShadow 类可以为组件添加阴影效果,增强视觉效果。

XqtShadow::addShadow(label, 5, QColor(0, 0, 0, 50), 2, 2);

示例代码

以下是一个完整的示例,展示如何在 Qt 应用程序中使用 XColor

#include <QLabel>
#include <QVBoxLayout>
#include "xqt_color_palette.hpp"
#include "xqt_utils.hpp"
#include "xqt_shadow.hpp"

void setupUI(QWidget *parent) {
    QVBoxLayout *layout = new QVBoxLayout(parent);
    ColorPalette palette;

    // 创建一个红色标签
    XColor redColor = palette.getColor("red");
    QLabel *redLabel = new QLabel("红色标签");
    QString redStyle = XUtils::replaceStyle(redLabel->styleSheet(), "background-color", redColor.getBg());
    redStyle = XUtils::replaceStyle(redStyle, "color", redColor.getText());
    redLabel->setStyleSheet(redStyle);
    XqtShadow::addShadow(redLabel, 5, QColor(0, 0, 0, 50), 2, 2);
    layout->addWidget(redLabel);
}


http://www.kler.cn/a/373236.html

相关文章:

  • window11使用wsl2安装Ubuntu22.04
  • Spearman相关系数和P值计算的MATLAB代码
  • Topaz Photo AI for Mac人工智能图像降噪软件 安装教程【保姆级教程,简单操作轻松上手】
  • 【力扣刷题实战】相同的树
  • WPF拖拽交互全攻略及实现自定义拖拽控件及数据交换技巧解析
  • 【C/C++】结构体的定义
  • Vue.js 构建可复用的组件
  • 小型语言模型(LLM)综述!
  • TVB被嘲讽工资低,张兆辉得体且高情商的回应,赢得网友赞赏
  • 【JIT/极态云】技术文档--发起申请
  • Chrome DevTools:Console Performance 汇总篇
  • LabVIEW涡扇发动机加力泵测试
  • 知难而进:什么是Web开发——关于软件开发你需要知道些什么
  • AIGC时代的数据盛宴:R语言引领数据分析新风尚
  • C++算法第五天
  • 无人机产校融合,突破理论与实战代沟,快速转化市场价值
  • php解密,sg11解密-sg15解密 如何由sourceGuardian11-sourceGuardian15加密(sg11加密~sg15加密)的源码
  • Flutter主题切换
  • Apache Linkis:重新定义计算中间件
  • 事务的四大隔离级别、数据库中的共享锁与排他锁、MySQL 的行级锁与表级锁
  • C++虚函数(详解)
  • 无人机避障——路径规划篇(一) JPS跳点搜索算法A*算法对比
  • React四官方文档总结一UI与交互
  • 4.2-7 运行MR应用:词频统计
  • flutter VideoPlayer适配:保持视频的原始宽高比,缩放视频使它完全覆盖父容器
  • Vue生成名片二维码带logo并支持下载