import sys from PyQt4 import QtGui from PyQt4 import QtCore class AppRemovalPage(QtGui.QWizardPage): def __init__(self, parent=None): super(AppRemovalPage, self).__init__(parent=parent) self.setTitle('Apps to Remove') self.setSubTitle('Listview') self.list_view = QtGui.QListView(self) self.list_view.setMinimumSize(465, 200) layout = QtGui.QVBoxLayout(self) layout.addWidget(self.list_view) self.setLayout(layout) self.items = [] self.isWritten = False loo = "/home/test1/file.txt" self.model = QtGui.QStandardItemModel(self.list_view) self.model.itemChanged.connect(self.setItems) file = QtCore.QFile(loo) if file.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text): while not file.atEnd(): line = bytearray(file.readLine()).decode().strip() item = QtGui.QStandardItem(line) item.setCheckable(True) item.setCheckState(QtCore.Qt.Unchecked) self.model.appendRow(item) self.list_view.setModel(self.model) self.list_view.show() def setItems(self, item): if item.checkState() == QtCore.Qt.Checked: self.items.append(item) if item.checkState() == QtCore.Qt.Unchecked: self.items.remove(item) def print_checked_items(self): path = "/home/test1/checked.txt" mode = QtCore.QFile.Append if self.isWritten else QtCore.QFile.WriteOnly if len(self.items) > 0: file = QtCore.QFile(path) if file.open(mode): for item in self.items: print('%s' % item.text()) file.write(item.text() + "\n") file.close() print("print checked items executed") if __name__ == '__main__': app = QtGui.QApplication(sys.argv) wizard = QtGui.QWizard() appremoval = AppRemovalPage() wizard.addPage(appremoval) wizard.addPage(QtGui.QWizardPage()) wizard.button(QtGui.QWizard.NextButton).clicked.connect(appremoval.print_checked_items) wizard.show() sys.exit(app.exec_())
Выход:
a d e print checked items executed