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);
}
相关推荐
薛定猫AI几秒前
【深度解析】Gemini Omni 多模态生成与 Agent 化创作工作流:从视频编辑到 UI 生成的技术演进
人工智能·ui·音视频
郭涤生17 分钟前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
山居秋暝LS22 分钟前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言
卢锡荣26 分钟前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设
Xin_ye1008630 分钟前
C# 零基础到精通教程 - 第七章:面向对象编程(入门)——类与对象
开发语言·c#
赏金术士1 小时前
第七章:状态管理实战与架构总结
android·ui·kotlin·compose
AI科技星1 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
审判长烧鸡1 小时前
【Go工具】go-playground是什么组织?官方的?
开发语言·安全·go
kkeeper~2 小时前
0基础C语言积跬步之字符函数与字符串函数(上)
c语言·开发语言
hhb_6182 小时前
Swift核心技术难点与实战案例解析
开发语言·ios·swift