Ich habe eine Qlistview aus einer Datei gefüllt, jede Zeile in der Datei wird zu einer Zeile. Nun möchte ich eine andere Funktion haben, die eine andere Datei aus allen überprüften Elementen in der qlistview erstellt. Meine Listenansicht geht wie folgt.Wie erhalte ich die markierten Elemente in einer Qlistview?
def show_list(self, file_in):
QListView.__init__(self)
QListView.setWindowFlags(self, QtCore.Qt.WindowStaysOnTopHint)
QListView.setWindowTitle(self, "ListView")
self.buttonBox = QtGui.QDialogButtonBox(self)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
list_view = QListView(self)
list_view.setMinimumSize(350,350)
self.verticalLayout = QtGui.QVBoxLayout(self)
self.verticalLayout.addWidget(list_view)
self.verticalLayout.addWidget(self.buttonBox)
self.buttonBox.accepted.connect(self.close)
self.buttonBox.rejected.connect(self.close)
model = QStandardItemModel(list_view)
with open(file_in) as f:
if f is not None:
item = f.readlines()
for line in item:
item = QStandardItem(line)
item.setCheckable(True)
item.setCheckState(QtCore.Qt.Unchecked)
model.appendRow(item)
list_view.setModel(model)
list_view.show()
Dies ist mein Versuch, bis jetzt mein gewünschtes Ergebnis zu erhalten. Leider druckt es meine geprüften Artikel nicht. Wenn ich so genannt werde self.print_checked_items(model)
Ich frage mich, was könnte falsch sein?
def print_checked_items(self, model):
path = "/home/test1/checked.txt"
for index in range(model.rowCount()):
item = model.item(index)
if item.isCheckable() and item.checkState() == QtCore.Qt.Checked:
with open(path, "a") as f_out:
print ('%s\n' % item.text())
f_out.write('%s\n' % item.text()
Sie meinen, dass Sie, wenn der Benutzer un/Schecks Listenelemente wissen wollen, oder vielmehr alle Listeneinträge finden, die überprüft werden? – Schollii
Nein, ich möchte eine Liste aller geprüften Elemente aus der Liste haben, nachdem ein Benutzer sie überprüft hat. – answerSeeker
Schreiben Sie eine Funktion, die Elemente der Liste überprüft und deren aktivierten Status überprüft. Sende den Code, dann können wir helfen. – Schollii