QTableview. Alle Daten der selektierten Zeile in Liste speichern
Verfasst: Sonntag 19. März 2017, 16:48
Hallo,
ich möchte die Daten der ausgewählten Zeile in eine Liste speichern um diese dann für andere Elemente anzuwenden. Nur leider bleibt die Liste leer.
Dazu habe ich die Funktion getRowclicked erzeugt die auf den Aufruf self.dataTBL.clicked.connect(self.getRowclicked) reagiert
Dabei kommt es jedoch zum Fehler:
Gibt es einen einfacheren weg, alle Daten der Auswahl zu sammeln?
VG niesel
ich möchte die Daten der ausgewählten Zeile in eine Liste speichern um diese dann für andere Elemente anzuwenden. Nur leider bleibt die Liste leer.
Dazu habe ich die Funktion getRowclicked erzeugt die auf den Aufruf self.dataTBL.clicked.connect(self.getRowclicked) reagiert
Code: Alles auswählen
from PyQt5 import QtCore, QtGui, QtWidgets
#from models import *
from Models.table_models import *
from db_mapping import load_data
from QtComponents.TableCheckBox import *
from QtComponents.TableValidateInput import *
my_array = load_data()
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(650, 647)
MainWindow.setMinimumSize(QtCore.QSize(650, 0))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(20, 30, 271, 215))
self.groupBox.setObjectName("groupBox")
...
self.dataTBL = QtWidgets.QTableView(self.centralwidget)
self.dataTBL.setGeometry(QtCore.QRect(40, 261, 581, 251))
self.dataTBL.setObjectName("dataTBL")
model = TableModel(my_array)
model.setHeaderData(0, QtCore.Qt.Horizontal, "Test")
self.dataTBL.setModel(model)
self.dataTBL.setItemDelegateForColumn(2, CheckBoxDelegate(self.dataTBL))
self.dataTBL.setItemDelegate(ValidatedCurrencyItemDelegate())
self.dataTBL.setItemDelegate(ValidatedDateItemDelegate())
self.theSelectionModel = self.dataTBL.selectionModel()
self.dataTBL.clicked(self.getRowclicked)#Registrieren
...
def getRowclicked(self):
data_list=None
index = self.dataTBL.selectedIndexes()[0]
test_list = self.dataTBL.selectionModel().selectedRows()
print(type(test_list))
print("test=",test_list)
print(type(index))
row = index.row()
print(index.data())
model = self.dataTBL.model()
for col in range(model.columnCount()):
index = model.index(row, col)
data_list.append(model.data(index).toString())
print(data_list)
Code: Alles auswählen
line 174, in getRowclicked
for col in range(model.columnCount()):
TypeError: columnCount() missing 1 required positional argument: 'parent'
VG niesel