diff --git a/pixelocr/gui/glypheditor.py b/pixelocr/gui/glypheditor.py index 16bcd5d..c7ba55a 100644 --- a/pixelocr/gui/glypheditor.py +++ b/pixelocr/gui/glypheditor.py @@ -64,13 +64,34 @@ class GlyphDBModel(QAbstractTableModel): elif role == Qt.DecorationRole: return self.get_image(key) + def removeRows(self, row, count, parent=None): + self.beginRemoveRows(parent, row, row + count - 1) + + keys = self.keys[row: row + count] + for key in keys: + del self.glyphdb[key] + del self.keys[row] + + self.endRemoveRows() + return True + + +class GlyphTableView(QTableView): + def keyPressEvent(self, event): + if event.key() == Qt.Key_Delete: + print('delete') + for index in self.selectedIndexes(): + self.model().removeRow(index.row()) + else: + return super().keyPressEvent(event) + def main(argv): dirname = argv[1] app = QApplication(argv) glyphdb = GlyphDB(dirname) - view = QTableView() + view = GlyphTableView() model = GlyphDBModel(glyphdb, parent=view) view.setModel(model) view.resize(640, 480)