2017-10-21 51 views
0

J'utilise QStandardItemModel pour maintenir QTreeView, et comment puis-je modifier ou supprimer le cercle rouge dans les images ci-dessous. Merci.QTreeView et en utilisant QStandardModel pour ajouter des éléments

from PySide2 import QtCore,QtGui 
from PySide2.QtGui import QStandardItemModel 
import pandas as pd 

class PrjTreeModel(QStandardItemModel): 

    def __init__(self, parent=None): 
     super(PrjTreeModel, self).__init__(parent) 
     # self.items = data 
     self.itmes = pd.DataFrame([['Hello','@TFF']],columns=['UserId','ProjectId']) 
     self.refreshItems() 

    def refreshItems(self): 
     prjId = self.itmes['ProjectId'] 
     child = ['RR','BB'] 

     for i,row in prjId.iteritems(): 
      parent = QtGui.QStandardItem(row) 
      child1 = QtGui.QStandardItem(child[0]) 
      child2 = QtGui.QStandardItem(child[1]) 
      parent.appendRow(child1) 
      parent.appendRow(child2) 
      self.appendRow(parent) 
    # def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole): 
    #  return self.itmes['UserId'][0] 

no

Répondre

0

J'ai trouvé l'api ...

Je dois ajouter ce code.

treeview.header().hide() 

et si je veux modifier l'en-tête, je dois ajouter la règle de rôle dans headerData

if (role == QtCore.Qt.DisplayRole) and (orientation == QtCore.Qt.Horizontal) and (self.items is not None): 
      return self.items['UserId'][0] 
     else: 
      return QStandardItemModel.headerData(self, section, orientation, role)