Dec-07-2023, 10:10 PM
I think this can help me, I will test it
def keyPressEvent(self, event) -> None: super().keyPressEvent(event) try: if event.key() == Qt.Key.Key_V and (event.modifiers() & Qt.KeyboardModifier.ControlModifier): selection = self.tb_segregados.selectedIndexes() if selection: row_anchor = selection[0].row() column_anchor = selection[0].column() clipboard = QApplication.clipboard() rows = clipboard.text().split('\n') if self.tb_segregados.rowCount() < row_anchor + len(rows) - 1: self.tb_segregados.setRowCount(row_anchor + len(rows) - 1) for index_row, row in enumerate(rows): values = row.split("\t") for index_col, value in enumerate(values): item = QtWidgets.QTableWidgetItem(value) # Fix here self.tb_segregados.setItem(row_anchor + index_row, column_anchor + index_col, item) if (event.key() == Qt.Key.Key_C or event.key() == Qt.Key.Key_X) \ and (event.modifiers() & Qt.KeyboardModifier.ControlModifier): copied_cell = sorted(self.tb_segregados.selectedIndexes()) copy_text = "" max_column = copied_cell[-1].column() for cell in copied_cell: cell_item = self.tb_segregados.item(cell.row(), cell.column()) if cell_item: copy_text += cell_item.text() if event.key() == Qt.Key.Key_X: cell_item.setText("") else: copy_text += "" if cell.column() == max_column: copy_text += "\n" else: copy_text += "\t" QApplication.clipboard().setText(copy_text) except Exception as e: print(e) pass