是否可以使用PySide2有条件地更改QTableView中项目的背景色?
我读了很多关于model view framework的文章。我不知道是否有必要使用委托。最近我可以在没有委托的情况下得到一列复选框。我相信虚拟方法setItemData(index, roles)
和{QMap
。我的模型必须在某个地方存储要由QtCore.Qt.BackgroundRole
使用的额外信息(顺便说一句,那个枚举表示“用于用默认委托呈现的项目的背景笔刷”),如果我不指定委托,是否使用了“默认委托”?。我应该改为使用QStandardItemModel
?
在下面的示例代码中,我如何根据一些阈值将特定列的背景色设置为红色(min和max列是阈值?在
from PySide2.QtWidgets import (QWidget, QApplication, QTableView,QVBoxLayout)
import sys
from PandasModel2 import PandasModel2
import numpy as np
import pandas as pd
class Example(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(300, 300, 700, 300)
self.setWindowTitle("QTableView")
self.initData()
self.initUI()
def initData(self):
data = pd.DataFrame(np.random.randint(1,10,size=(6,4)), columns=['Test#','MIN', 'MAX','MEASURED'])
data['Test#'] = [1,2,3,4,5,6]
#add the checkable column to the DataFrame
data['Check'] = True
self.model = PandasModel2(data)
def initUI(self):
self.tv = QTableView(self)
self.tv.setModel(self.model)
vbox = QVBoxLayout()
vbox.addWidget(self.tv)
self.setLayout(vbox)
app = QApplication([])
ex = Example()
ex.show()
sys.exit(app.exec_())
我有一个使用熊猫数据帧的定制模型:
^{pr2}$
默认情况下,委托使用BackgroundRole信息(如果可用),因此解决方案只是返回QColor、QBrush或类似的信息。在
相关问题 更多 >
编程相关推荐