Я хотел бы добавить QComboBox с входными данными (Id, Name, Year) в первую строку QAbstractTableModel? Я пробовал аналогичные сообщения Как установить данные в QComboBox с помощью QAbstractTableModel (Модель/представление)? и Как добавить Select one... в QComboBox при использовании QAbstractTableModel (Model/View)?. Однако не получилось (приложение постоянно вылетает). Как я могу изменить свой существующий код? Я новичок в PyQT, любая помощь высоко ценится. Большое спасибо!
Мой код
class PandasModel(QtCore.QAbstractTableModel):
def __init__(self, df = pd.DataFrame(), parent=None):
QtCore.QAbstractTableModel.__init__(self, parent=parent)
self._df = df
row_count = 700
column_count = 700
def rowCount(self, parent=QtCore.QModelIndex()):
return len(self._df.index)
def columnCount(self, parent=QtCore.QModelIndex()):
return len(self._df.columns)
def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
if role != QtCore.Qt.DisplayRole:
return QtCore.QVariant()
if orientation == QtCore.Qt.Horizontal:
try:
return self._df.columns.tolist()[section]
except (IndexError, ):
return QtCore.QVariant()
elif orientation == QtCore.Qt.Vertical:
try:
# return self.df.index.tolist()
return self._df.index.tolist()[section]
except (IndexError, ):
return QtCore.QVariant()
def data(self, index, role=QtCore.Qt.DisplayRole):
if role != QtCore.Qt.DisplayRole:
return QtCore.QVariant()
if not index.isValid():
return QtCore.QVariant()
return QtCore.QVariant(str(self._df.iloc[index.row(), index.column()]))
setIndexWidget
. Пожалуйста, внимательно изучите приведенные выше ссылки, вы не можете программировать модель/представление, если не знаете, что это такое. - person musicamante   schedule 03.05.2021