Как получить с каждого столбца таблицы QTableWidget отдельный массив?

Пытался выводить массив данных с каждого столбца таблицы по этому вопросу: PyQt5. Считать значения столбца или строки таблицы без цикла

Но безрезультатно. Если кто может напишите пример и объясните как он работает.


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

from PyQt5.Qt import *


class TableExample(QWidget):
    def __init__(self):
        super().__init__()

        self.table = QTableWidget(3, 3)
        self.fillButton = QPushButton(
            "Заполнить ячейки (выделенные ячейки)")
        self.fillButton.clicked.connect(self.onFill)

        layout = QVBoxLayout(self)
        layout.addWidget(self.table)
        layout.addWidget(self.fillButton)

    def onFill(self):
        for i, index in enumerate(self.table.selectedIndexes()):
            item = QTableWidgetItem()
            item.setText(str(i))
            self.table.setItem(index.row(), index.column(), item)

        self.get_column_data()               # +++

    def get_column_data(self):    
        rows = self.table.rowCount()         # Возвращает количество строк 
        columns = self.table.columnCount()   # Возвращает количество столбцов
         
        data = [ 
                   [self.table.item(row, column).text()
                       for row in range(rows)
                       if self.table.item(row, column) is not None
                   ] 
                   for column in range(columns)
               ]
               
        print(f"\ndata -> {data}\n")
        print(* data, sep='\n')
           

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    w = TableExample()
    w.resize(400, 200)
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка