Python PyQt4 QTableWidget CellWidget滚动列值

2024-10-01 07:33:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个具有以下属性的QTablWidget

        mytable.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
        mytable.setSelectionBehavior(QtGui.QTableWidget.SelectRows)
        mytable.setSelectionMode(QtGui.QTableWidget.SingleSelection)
        mytable.horizontalHeader().setStretchLastSection(True)
        mytable.verticalHeader().hide()

在我的表的每一行,我在CellWidget处有一个QPushButton集,如下所示:

enter image description here

有没有任何方法可以在用户按下任何一个按钮后得到Row number所在表的Row number?在

例如,如果用户单击表的row 2上的QPushButton,则返回值2。在

编辑2

根据其中一个答案,我已经将代码更新为:但是我仍然没有得到任何东西。我哪里出错了?我试图打印出self.table.itemAt(button.pos())的输出,得到了None。在

^{pr2}$

Tags: 用户number属性mytablerowqtguiqtablewidgetqpushbutton
1条回答
网友
1楼 · 发布于 2024-10-01 07:33:47

如果可以获得对单击的按钮的引用,则可以使用QTableView.indexAt获取相应的索引:

    button.clicked.connect(self.handleButtonClicked)
    ...        

    def handleButtonClicked(self):
        button = QtGui.qApp.focusWidget()
        # or button = self.sender()
        index = self.table.indexAt(button.pos())
        if index.isValid():
            print(index.row(), index.column())

相关问题 更多 >