qtreeview 添加节点时候 给节点设置背景色

Qt 中,可以通过使用样式表来为 QTreeView 中的节点设置背景色。你可以使用 QTreeView::item 选择器为每个节点设置样式。以下是一个简单的示例:

// 设置 QTreeView 样式表
QString styleSheet = "QTreeView::item { background-color: yellow; }";
treeView->setStyleSheet(styleSheet);

这段代码会将 QTreeView 中所有节点的背景色设置为黄色。如果你想为特定的节点设置不同的背景色,可以使用 QStandardItemsetData() 方法来设置每个节点的样式属性。

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().color() == Qt::yellow) {
        qDebug() << "当前节点的背景色是黄色!";
    } else {
        qDebug() << "当前节点的背景色不是黄色。";
    }
} else {
    qDebug() << "无效的索引。";
}

这段代码首先获取了当前选择的索引(currentIndex),然后使用 data() 方法来检索索引处节点的背景色。接着,它检查背景色是否为黄色 (Qt::yellow)。如果当前节点的背景色是黄色,它会输出一条消息到调试控制台。

你可能感兴趣的:(c++,c++)