如何控制QTableView上的排序箭头指示器
How to control sorting arrow indicator on QTableView
创建此 QTableView
时,我希望显示排序 "arrow" 指示器
在中间的柱子上。箭头需要指向下方。如何实现?
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
class Model(QtCore.QAbstractTableModel):
def __init__(self):
QtCore.QAbstractTableModel.__init__(self)
self.items = [[1, 'one', 'ONE'], [2, 'two', 'TWO'], [3, 'three', 'THREE']]
def rowCount(self, parent=QtCore.QModelIndex()):
return 3
def columnCount(self, parent=QtCore.QModelIndex()):
return 3
def data(self, index, role):
if not index.isValid(): return
if role == QtCore.Qt.DisplayRole:
return self.items[index.row()][index.column()]
tableModel=Model()
tableView=QtGui.QTableView()
tableView.setModel(tableModel)
tableView.setSortingEnabled(True)
tableView.show()
app.exec_()
你必须使用 sortByColumn function, using Descending Order 使箭头成为 "pointing down":
tableView.sortByColumn(1, QtCore.Qt.DescendingOrder)
创建此 QTableView
时,我希望显示排序 "arrow" 指示器
在中间的柱子上。箭头需要指向下方。如何实现?
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
class Model(QtCore.QAbstractTableModel):
def __init__(self):
QtCore.QAbstractTableModel.__init__(self)
self.items = [[1, 'one', 'ONE'], [2, 'two', 'TWO'], [3, 'three', 'THREE']]
def rowCount(self, parent=QtCore.QModelIndex()):
return 3
def columnCount(self, parent=QtCore.QModelIndex()):
return 3
def data(self, index, role):
if not index.isValid(): return
if role == QtCore.Qt.DisplayRole:
return self.items[index.row()][index.column()]
tableModel=Model()
tableView=QtGui.QTableView()
tableView.setModel(tableModel)
tableView.setSortingEnabled(True)
tableView.show()
app.exec_()
你必须使用 sortByColumn function, using Descending Order 使箭头成为 "pointing down":
tableView.sortByColumn(1, QtCore.Qt.DescendingOrder)