セルをQTableView
に色付けしたいと思います。QTableModelのセルの背景色を変更します
これで、対応するの対応するアイテムのitemData
を変更しようとしています。
これを行うには、QAbstractTableModel
クラスのsetItemData
メソッドを使用します。ドキュメントで
:
QAbstractItemModel::setItemData(const QModelIndex & index, const QMap < int, QVariant > & roles)
これは、コードの私の部分である:
color = QtGui.QColor(Qt.red)
self.model.setItemData(self.model.index(3,3),color,Qt.BackgroundRole)
Iこれは赤で(水平および垂直)モデルの第3のセルに色だろうと思いました。
しかし、アプリケーションの応答:
color = Qt.QVariant(QtGui.QColor(Qt.red))
self.model.setItemData(self.model.index(3,3),color,Qt.BackgroundRole)
回答:私は本当にすることはできません
TypeError: PyQt4.QtCore.QVariant represents a mapped type and cannot be instantiated
TypeError: QAbstractItemModel.setItemData(QModelIndex, dict-of-int-QVariant): argument 2 has unexpected type 'QColor'
私はQvariant
でQcolor
タイプを変換しようとした場合わかる。
私の質問は、setItemData
メソッドの2番目のパラメータに入力するデータの種類は何ですか?事前
setItemDataはしていません:あなたは一度に多くの値を設定しますが、それぞれのカップルが役割とそれに対応する値で構成されて
QMap
を構築する必要がしたい場合はQAbstractItemModel::setItemData
を使用することができます色を第2のインデックスとして受け入れる – user1767754
はい、私はドキュメントを誤解していました。私は色が予想されると思ったが、それはQmapだった。 setDataを使用すると、問題は解決されます。ありがとう。 –