पांडा संपादन योग्य QTableView में DF: चेक बॉक्स को दूर

वोट
2

मैं एक पांडा dataframe है कि मैं एक QtableView में मौजूद है और यह संपादन योग्य बनाने के लिए करना चाहते हैं की है। मैं नीचे मॉडल बनाने के है, लेकिन किसी कारण से उत्पादन हर क्षेत्र में चेक बॉक्स है। मैं उनसे पीछा कैसे छुड़ाऊं?

outout इस तरह दिखता है: यहाँ

और यह इस मॉडल है कि पांडा dataframe एक qtavleview में दिखाया गया है बनाने के लिए और बनाने के लिए प्रयोग किया जाता है यह संपादन योग्य (मैं PySide उपयोग कर रहा हूँ)

class PandasModelEditable(QtCore.QAbstractTableModel):
    def __init__(self, data, parent=None):
        QtCore.QAbstractTableModel.__init__(self, parent)
        self._data = data

    def rowCount(self, parent=None):
        return len(self._data.values)

    def columnCount(self, parent=None):
        return self._data.columns.size

    def data(self, index, role=QtCore.Qt.DisplayRole):
        if index.isValid():
            if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
                return unicode(self._data.iloc[index.row(), index.column()])
        return unicode()

    def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
        if role != QtCore.Qt.DisplayRole:
            return None
        if orientation == QtCore.Qt.Horizontal:
            try:
                return '%s' % unicode(self._data.columns.tolist()[section])
            except (IndexError,):
                return unicode()
        elif orientation == QtCore.Qt.Vertical:
            try:
                return '%s' % unicode(self._data.index.tolist()[section])
            except (IndexError,):
                return unicode()

    def flags(self, index):
        return QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable | \
               QtCore.Qt.ItemIsEditable

    def setData(self, index, value, role=QtCore.Qt.EditRole):
        if index.isValid():
            self._data.iloc[index.row(), index.column()] = value
            if self.data(index, QtCore.Qt.DisplayRole) == value:
                self.dataChanged.emit(index, index)
                return True
        return unicode()

निकाला जा रहा है QtCore.Qt.ItemIsSelectableसमस्या का समाधान नहीं है, क्योंकि यह किसी भी effet के लिए प्रतीत नहीं होता।

19/12/2016 को 20:54
उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
3

आप से गलत मूलभूत मूल्यों लौट रहे हैं dataऔर setaData। पूर्व लौटना चाहिए None, (ताकि आप सिर्फ अंतिम पंक्ति को दूर कर सकता है) जबकि दूसरी लौटना चाहिए False

19/12/2016 को 22:04
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more