在 QTableView 中显示某些列
Show certain columns in QTableView
假设我有 QAbstractTableModel,它提供 2 个 QTableView。一个表格视图显示模型中的所有数据。请告知我如何指定其他表视图以仅显示来自同一模型的 2 列。
一个简单的解决方案是使用 QTableView
的 hideColumn()
方法隐藏列。
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_())
假设我有 QAbstractTableModel,它提供 2 个 QTableView。一个表格视图显示模型中的所有数据。请告知我如何指定其他表视图以仅显示来自同一模型的 2 列。
一个简单的解决方案是使用 QTableView
的 hideColumn()
方法隐藏列。
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_())