QT开发中文网

QTreeWidget::item:selected { background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #0079E2, stop: 1 #020519); color: #ffffff; outline: none; } 选中时设置边框颜色为渐变色

要在 QTreeWidget 中设置选中项的边框颜色为渐变色,您可以使用 QSS 来实现。虽然 QSS 不能直接在 outline 属性上应用渐变色,但我们可以通过设置 border 来实现。

以下是如何设置选中时的边框为渐变色的示例代码:

示例 QSS 代码

#include <QApplication>
#include <QTreeWidget>
#include <QVBoxLayout>
#include <QWidget>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWidget window;
    QVBoxLayout *layout = new QVBoxLayout(&window);

    QTreeWidget *treeWidget = new QTreeWidget();
    
    // 设置 QSS 样式表
    treeWidget->setStyleSheet(
        "QTreeWidget { font-size: 16px; } "
        "QTreeWidget::item:selected { "
        "background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,"
        "stop: 0 #0079E2, stop: 1 #020519);"
        "color: #ffffff;"
        "border: 2px solid; "
        "border-image: linear-gradient(90deg, #0079E2, #020519);"
        "} "
    );

    // 添加一些项以便查看效果
    treeWidget->addTopLevelItem(new QTreeWidgetItem(QStringList() << "Item 1"));
    treeWidget->addTopLevelItem(new QTreeWidgetItem(QStringList() << "Item 2"));

    layout->addWidget(treeWidget);
    window.setLayout(layout);
    
    window.show();
    return app.exec();
}

在这段代码中:

  • 我们对 QTreeWidget::item:selected 应用了多种样式:
    • 背景颜色:通过线性渐变填充背景。
    • 文本颜色:将文本颜色设置为白色。
    • 边框:使用了一个简单的宽度和样式来定义边框,并通过 border-image 属性来填充一个线性渐变。

请注意,Qt 的支持可能有所不同,有些版本可能不完全支持某些特性,因此根据具体情况可能需要做调整。如果此样式未能如预期工作,请检查 Qt 文档以确保所有属性都得到适当支持。

如果有任何问题或者其他需求,请告诉我!


内容由零声教学AI助手提供,问题来源于学员提问

目录导航
  • 示例 QSS 代码
  • 在这段代码中:
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=13239

    分享:
    扫描分享到社交APP
    上一篇
    下一篇
    发表列表
    游客 游客
    此处应有掌声~
    评论列表

    还没有评论,快来说点什么吧~

    联系我们

    在线咨询: 点击这里给我发消息

    微信号:3007537140

    上班时间: 10:30-22:30

    关注我们
    x

    注册

    已经有帐号?