如何在QTableView上控制排序箭头指示器

时间:2016-05-20 05:07:08

标签: python qt pyqt qtableview qabstracttablemodel

enter image description here

创建此QTableView时,我希望显示排序“箭头”指示符 在中间的栏目上。箭头需要指向下方。怎么做到这一点?

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_()

1 个答案:

答案 0 :(得分:1)

您必须使用sortByColumn功能,使用Descending Order使箭头“向下”:

div {
  width: 100%;
  margin: 3px;
  padding: 5px;
}
@media (min-width: 500px) {
  div {
    width: 50%;
    float: left;
  }
}
@media (min-width: 700px) {
  div {
    width: 100%;
    margin: 6px;
    padding: 25px;
  }
}