gpt4 book ai didi

qt - QT CSS 中的属性选择器

转载 作者:行者123 更新时间:2023-12-04 13:02:17 26 4
gpt4 key购买 nike

我有一个用于用户/房间概念的树形小部件。我如何独立于房间中的用户来设置房间的样式?我假设它与 QT 在 CSS 中的属性选择器有关?我希望能够做到这一点:

QTreeView::item[isUser="true"] { background: blue; }
QTreeView::item[isRoom="true"] { background: red; }

最佳答案

由于模型中的项目不是 QObject(也不是 QWidget),您将无法向项目添加属性,或使用样式表设置它们的样式。

对于做你想做的事,我有两个建议:

1)(仅限 C++)将 QTreeView 附加到 QStandardItemModel,当您将项目添加为 QStandardItem 对象时,您可以调用 QStandardItem::setBackground() 使用 Qt::blueQt::red 取决于项目是房间还是用户。

2) (C++ 和 CSS)定义一个附加到 QTreeViewQStyledItemDelegate。在您重新实现 QStyledItemDelegate::paint() 方法时,使用 QLabel 来显示项目的内容,然后在该 QLabel 上设置一个属性>。然后您将能够使用样式表来自定义标签的外观:

QLabel[isUser="true"] { background: blue; }
QLabel[isRoom="true"] { background: red; }

关于qt - QT CSS 中的属性选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3671433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com