QStandardItem 设置颜色无反应
时间: 2023-07-04 14:04:49 浏览: 221
如果您使用的是 PyQt5 或 PySide2,可以使用 QStandardItem.setData() 方法设置 Qt 的 UserRole 以实现颜色设置。示例代码如下:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QStandardItem, QColor
item = QStandardItem("Hello World")
color = QColor(255, 0, 0) # 红色
item.setData(color, Qt.UserRole + 1) # 设置颜色
```
如果您使用的是 PyQt4 或 PySide,可以使用 QStandardItem.setForeground() 方法设置前景色。示例代码如下:
```python
from PyQt4.QtGui import QStandardItem, QColor
item = QStandardItem("Hello World")
color = QColor(255, 0, 0) # 红色
item.setForeground(color) # 设置前景色
```
注意:如果您使用的是 QML,可以使用 Qt Quick Controls 里的 QStandardItemModel 和 DelegateModel 来设置颜色。
相关问题
C++/qt QStandardItem 设置颜色无反应
QStandardItem 中设置颜色无反应可能有以下几个原因:
1. 未正确设置 QStandardItem 的数据模型。如果 QStandardItem 未正确添加到数据模型中,那么设置颜色可能会无效。请确保将 QStandardItem 添加到正确的父项中。
2. 未正确设置 QStandardItem 的 ItemDelegate。QStandardItem 的颜色通常是由其 ItemDelegate 控制的。如果未正确设置 ItemDelegate,那么设置颜色可能会无效。请检查您的 ItemDelegate 是否正确设置。
3. 颜色设置被覆盖。QStandardItem 中的数据通常是动态更新的。如果之前的颜色设置被新的数据覆盖,那么设置颜色可能会无效。请确保在每次设置颜色时都重新设置颜色,以确保其正确显示。
以下是一个简单的示例,展示如何在 QStandardItem 中设置颜色:
```
QStandardItem* item = new QStandardItem("Text");
item->setData(QBrush(Qt::red), Qt::ForegroundRole);
```
这将设置 QStandardItem 的前景色为红色。请确保您的代码与此示例类似,并且正确设置了数据模型和 ItemDelegate。
QStandardItem 设置 qss
可以使用 `QStandardItem` 的 `setStyleSheet` 方法来设置 QSS 样式。
例如,以下是一个设置 QStandardItem 样式的示例:
```python
from PyQt5.QtGui import QStandardItem
from PyQt5.QtCore import Qt
# 创建一个 QStandardItem
item = QStandardItem("Item")
# 设置样式
item.setStyleSheet("background-color: orange; color: white;")
# 设置对齐方式
item.setTextAlignment(Qt.AlignCenter)
```
在上面的示例中,可以看到 `setStyleSheet` 方法被用来设置 QStandardItem 的背景颜色和文本颜色。你可以根据需要设置其他样式属性。
如果你在使用 Qt Designer 创建 GUI,则可以在属性编辑器中选择 QStandardItem 并在“样式表”属性中设置样式。