PyQt QTableView 点击后,如何知道行和列

sna*_*nag 5 python pyqt

在表格视图、模型中,当你点击单元格时,你知道单元格行列的方法是什么?

版本:
PyQt : 4.11.4
Python : 3.5.3

这些是我对表视图、模型的设置。

def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ntableView = QtGui.QTableView()
        self.nlayout = QtGui.QVBoxLayout()
        self.nmodel = QtGui.QStandardItemModel()
        self.ntableView.setModel(self.nmodel)
        self.nlayout.addWidget(self.ntableView)
        self.setLayout(self.nlayout)
        self.func_mappingSignal()

def func_mappingSignal(self):
        self.ntableView.clicked.connect(self.func_test)

def func_test(self, item):
        # http://www.python-forum.org/viewtopic.php?f=11&t=16817
        cellContent = item.data()
        print(cellContent)  # test
        sf = "You clicked on {}".format(cellContent)
        print(sf)
Run Code Online (Sandbox Code Playgroud)

小智 7

如果你想获得点击单元格的坐标,你可以使用clicked信号处理程序的参数,就像你调用它一样itemQModelIndex在这种情况下)

def func_test(self, item):
Run Code Online (Sandbox Code Playgroud)

并获得item.column(), item.row()价值。

喜欢

sf = "You clicked on {0}x{1}".format(item.column(), item.row())
Run Code Online (Sandbox Code Playgroud)