首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QLabel Qt/c++文本的渐变颜色

QLabel Qt/c++文本的渐变颜色
EN

Stack Overflow用户
提问于 2021-02-19 12:43:31
回答 3查看 893关注 0票数 2

我试图为QLabel文本设置渐变颜色。我正在尝试使用setStyleSheet函数,但它不起作用。我读这篇文章,但仍然无法得到工作解决方案。

这是我的密码

代码语言:javascript
复制
void MyClass::setTitle(const QString& text)
{
    m_text = text;
    m_titleText->setText(text);
    QFont font = m_titleText->font();
    font.setPointSize(12);
    m_titleText->setFont(font);
    m_titleText->setStyleSheet("color: qlineargradient(x1: 0, y1: 0,    x2: 0, y2: 1,    #3d5afe: 0 #66e, stop: 1 #fd3e7f);")
}

这个问题有什么解决办法吗?先谢了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-19 12:45:35

你可以试试这个。

代码语言:javascript
复制
   void MyClass::setTitle(const QString& text)
    {
        m_text = text;
        m_titleText->setText(text);
        QFont font = m_titleText->font();
        font.setPointSize(12);
        m_titleText->setFont(font);
        QPalette labelPal;
        QLinearGradient colorGradient = QLinearGradient(0, 0, m_titleText->width(), 0);
        colorGradient.setSpread(QGradient::RepeatSpread);
        colorGradient.setColorAt(0, QColor("#3d5afe"));
        colorGradient.setColorAt(1, QColor("#fd3e7f"));
        QBrush brush(colorGradient);
        labelPal.setBrush(QPalette::ColorRole::Text, brush);
    
        m_titleText->setPalette(labelPal);
        m_titleText->setForegroundRole(QPalette::Text);
    }
票数 1
EN

Stack Overflow用户

发布于 2021-06-27 22:37:28

您正在使用无效的语法,但是QSS解析器无法确定它(或者至少没有给出任何警告),所以它只是忽略渐变,并使用默认的调色板颜色作为文本。

问题是您缺少了一个stop定义,而是使用了一个颜色。

改为:

代码语言:javascript
复制
    m_titleText->setStyleSheet("color: qlineargradient(x1: 0, y1: 0,    x2: 0, y2: 1,    stop: 0 #66e, stop: 1 #fd3e7f);")

请注意,也可以使用设置为QPalette角色的QLinearGradient (具有对象边界模式)的QLinearGradient来完成同样的任务。

票数 0
EN

Stack Overflow用户

发布于 2021-02-19 12:52:56

代码语言:javascript
复制
 ui->label->setStyleSheet(
    "* {color: qlineargradient(spread:pad, x1:0 y1:0, x2:1 y2:0, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));"
    "background: qlineargradient( x1:0 y1:0, x2:1 y2:0, stop:0 cyan, stop:1 blue);}");

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66277783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档