PySide / pyQt通过单击垂直标题在QTableWidget中选择整行时发送的信号

时间:2013-10-09 15:55:23

标签: c qt python-3.x pyqt pyside

- 1 2 3
1 a b c
2 d e f
3 g h i

当点击1选择a,b和c时,tableWidget会发送什么信号。

我只在C中找到答案(我认为这是这个问题的答案)。以下是

connect( (QObject*) this->verticalHeader(), SIGNAL( sectionClicked(int) ), this, SLOT( rowSelection( int ) ) );

我尝试将其实现为python,如下所示:

self.QTableWidget.verticalHeader.sectionClicked.connect(self.Test)

但是它说verticalHeader没有属性sectionClicked。

1 个答案:

答案 0 :(得分:3)

我认为发出的信号是正确的,但你的代码并不完全正确。以下小例子似乎对我有用:

from PySide import QtGui
import sys

class W(QtGui.QTableWidget):
    def __init__(self):
        super(W,self).__init__(3, 3)

        self.verticalHeader().sectionClicked.connect(self.onSectionClicked)

    def onSectionClicked(self, logicalIndex):
        print("onSectionClicked:", logicalIndex)


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    w = W()
    w.show()
    sys.exit(app.exec_())

因此,在QTableWidget实例中,您需要通过调用verticalHeader()来获取垂直标头对象,该sectionClicked具有您提到的信号{{1}}。