在你的样式表代码中,你尝试为 QTreeWidget::item:selected
设置渐变色的边框。如果你希望边框使用线性渐变,同时保持选中项的背景和文本颜色,也可以进一步确认是否支持。
以下是一个更新后的样式表示例,展示了如何应用这些属性:
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 transparent; " // 用于创建空间以便显示 border-image
"border-image: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,"
"stop: 0 #007FBD, stop: 1 #00B4FF);"
"} "
);
// 添加一些项以便查看效果
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();
}
注意事项:
border
属性:由于 Qt 在处理border-image
时可能需要一定的边框宽度,因此我们设置border
为透明(或其他颜色),使其占位但不干扰视觉效果。- 渐变背景与边框:你可以根据需要调整渐变色的参数。
这个例子演示了如何将选中项的背景设置为渐变色,并同时使用另一个渐变色作为边框图像。运行这段代码并查看结果,确保它符合你的设计需求。如果有任何问题或者进一步的需求,请告诉我!
内容由零声教学AI助手提供,问题来源于学员提问