Показать определенные столбцы в QTableView - PullRequest
0 голосов
/ 05 октября 2018

Предположим, у меня есть QAbstractTableModel, который передает 2 QTableView.Одно табличное представление показывает все данные в модели.Посоветуйте, пожалуйста, как мне подойти, чтобы указать другое табличное представление, чтобы показывать только 2 столбца из одной модели.

1 Ответ

0 голосов
/ 05 октября 2018

Простое решение состоит в том, чтобы скрыть столбцы, используя hideColumn() метод QTableView.

from PyQt5 import QtCore, QtGui, QtWidgets

class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Widget, self).__init__(parent)

        model = QtGui.QStandardItemModel(5, 5, self)
        for i in range(model.rowCount()):
            for j in range(model.columnCount()):
                it = QtGui.QStandardItem("{}-{}".format(i, j))
                model.setItem(i, j, it)

        table_all = QtWidgets.QTableView()
        table_all.setModel(model)

        table = QtWidgets.QTableView()
        table.setModel(model)

        for column_hidden in (0, 3, 4):
            table.hideColumn(column_hidden)

        lay = QtWidgets.QHBoxLayout(self)
        lay.addWidget(table_all)
        lay.addWidget(table)


if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())
...