Python Forum
PySide6 Copy and Past from clipboard to QTableWedget
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PySide6 Copy and Past from clipboard to QTableWedget
#7
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
Reply


Messages In This Thread
RE: PySide6 Copy and Past from clipboard to QTableWedget - by zinho - Dec-07-2023, 10:10 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  PySide6 - Connect to DBus signal - Correct syntax Drexel 1 657 Dec-18-2023, 08:03 AM
Last Post: Drexel
Bug [PyQt] Dinamically adding widgets to layout [PySide6] carecavoador 2 1,482 Jun-19-2023, 12:57 PM
Last Post: carecavoador
  PySide6 QFontDialog - bug or just me? PatM 1 1,119 Jan-22-2023, 01:29 PM
Last Post: Axel_Erfurt
  Pyside6 Larz60+ 7 3,011 Nov-28-2022, 07:25 PM
Last Post: Larz60+
  [PySide6] Load ui with UiLoader catlessness 6 8,880 Nov-24-2021, 02:17 PM
Last Post: catlessness

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020