Qt 中,可以通过使用样式表来为 QTreeView
中的节点设置背景色。你可以使用 QTreeView::item
选择器为每个节点设置样式。以下是一个简单的示例:
// 设置 QTreeView 样式表
QString styleSheet = "QTreeView::item { background-color: yellow; }";
treeView->setStyleSheet(styleSheet);
这段代码会将 QTreeView
中所有节点的背景色设置为黄色。如果你想为特定的节点设置不同的背景色,可以使用 QStandardItem
和 setData()
方法来设置每个节点的样式属性。
QStandardItemModel *model = new QStandardItemModel();
// 创建一个带有文本的节点
QStandardItem *item = new QStandardItem("Item Text");
// 设置节点的背景色
QBrush brush(Qt::yellow);
item->setData(brush, Qt::BackgroundRole);
model->appendRow(item);
treeView->setModel(model);
这段代码将创建一个带有文本的节点,并将其背景色设置为黄色。你可以根据需要修改节点的属性和颜色。
判断当前节点背景色是黄色
QModelIndex currentIndex = treeView->currentIndex(); // 获取当前选择的索引
if (currentIndex.isValid()) {
QVariant backgroundColor = currentIndex.data(Qt::BackgroundRole);
if (backgroundColor.isValid() && backgroundColor.value<QBrush>().color() == Qt::yellow) {
qDebug() << "当前节点的背景色是黄色!";
} else {
qDebug() << "当前节点的背景色不是黄色。";
}
} else {
qDebug() << "无效的索引。";
}
这段代码首先获取了当前选择的索引(currentIndex
),然后使用 data()
方法来检索索引处节点的背景色。接着,它检查背景色是否为黄色 (Qt::yellow
)。如果当前节点的背景色是黄色,它会输出一条消息到调试控制台。