diff --git a/InterceptEscapeWhenEditingTableCellInView.py b/InterceptEscapeWhenEditingTableCellInView.py index 5469e86..1c8b543 100755 --- a/InterceptEscapeWhenEditingTableCellInView.py +++ b/InterceptEscapeWhenEditingTableCellInView.py @@ -25,10 +25,9 @@ class EscapeDelegate(QStyledItemDelegate): def eventFilter(self, editor: QObject, event: QEvent): """By default, QPlainTextEdit doesn't handle enter or return""" - print("EscapeDelegate event handler") if event.type() == QEvent.Type.KeyPress: key_event = cast(QKeyEvent, event) - print(key_event) + print(key_event.key()) if key_event.key() == Qt.Key.Key_Return: if key_event.modifiers() == (Qt.KeyboardModifier.ControlModifier): print("save data") @@ -51,6 +50,8 @@ class MyTableWidget(QTableView): super().__init__(parent) self.setItemDelegate(EscapeDelegate(self)) self.setModel(MyModel()) + self.resizeColumnsToContents() + self.resizeRowsToContents() class MyModel(QAbstractTableModel): @@ -69,7 +70,7 @@ class MyModel(QAbstractTableModel): column = index.column() if role == Qt.ItemDataRole.DisplayRole: return QVariant(f"Row {row}, Col {column}") - return QVariant + return QVariant() def flags(self, index): return Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEditable @@ -79,17 +80,8 @@ class MainWindow(QMainWindow): def __init__(self, parent=None): super().__init__(parent) self.table_widget = MyTableWidget(self) - # self.table_widget.setRowCount(2) - # self.table_widget.setColumnCount(2) - # for row in range(2): - # for col in range(2): - # item = QTableWidgetItem() - # item.setText(f"Row {row}, Col {col}") - # self.table_widget.setItem(row, col, item) self.setCentralWidget(self.table_widget) - self.table_widget.resizeColumnsToContents() - self.table_widget.resizeRowsToContents() if __name__ == "__main__":