QTreeWidgetItem 高亮文本问题

Posted

技术标签:

【中文标题】QTreeWidgetItem 高亮文本问题【英文标题】:QTreeWidgetItem highlight text problems 【发布时间】:2019-10-01 08:02:21 【问题描述】:

我尝试显示 QTreeWidgetItem 文本,其中一部分以蓝色突出显示。 正如我在其他帖子中看到的,我们可以使用 QLabel 并将其添加为 itemWidget。

QString("Test<SPAN style='background-color: lightblue'>blue</SPAN>display");    

我使用的文字是这样的。文本正确突出显示,但出现了很多问题。我无法选中/取消选中我的项目,也无法在其中的很大一部分上使用拖放操作。

有没有使用 ItemDelegate 或其他东西来解决这个问题的解决方案? 我正在使用 Qt 5.13

我需要你的帮助。提前谢谢你。

【问题讨论】:

您好,欢迎您。您说您正在使用QLabel 并将其用作QWidgetItemItemWidget?),但仅提供带有QString 的单行。请务必在您的问题中包含relevant code,否则我们将无法为您提供帮助。 提供minimal reproducible example auto *tree= new QTreeWidget; auto *item = new QTreeWidgetItem(tree); auto *label= new QLabel(QString("Testbluedisplay"));树->setItemWidget(0, 标签);当我这样做时,我无法再选中或取消选中我的项目。 【参考方案1】:
auto *tree= new QTreeWidget;
auto *item = new QTreeWidgetItem(tree);
auto *label= new QLabel(QString("Test<SPAN style='background-color: lightblue'>blue</SPAN>display"));
tree->setItemWidget(0, label);

当我这样做时,我无法再选中或取消选中我的项目。

【讨论】:

以上是关于QTreeWidgetItem 高亮文本问题的主要内容,如果未能解决你的问题,请参考以下文章

连接 QTreeWidgetItem 时出错

仅使 QTreeWidgetItem 的一列可编辑

使用 QTreeWidgetItem 创建子树

使用自定义数据将 QTreeWidgetItem 拖放到 QGraphicsView

QTreeWidgetItem 使用键盘多选

Qt继承QTreeWidgetItem的问题