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

Posted

技术标签:

【中文标题】PySide/pyQt 通过单击垂直标题在 QTableWidget 中选择一整行时发送啥信号【英文标题】:PySide/pyQt What signal is sent when selecting a whole row in QTableWidget by clicking on vertical headerPySide/pyQt 通过单击垂直标题在 QTableWidget 中选择一整行时发送什么信号 【发布时间】:2013-10-09 15:55:23 【问题描述】:
- 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】:

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

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

【讨论】:

以上是关于PySide/pyQt 通过单击垂直标题在 QTableWidget 中选择一整行时发送啥信号的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PySide/PyQt 中设置“只读复选框”

PySide/PyQt:PointingHandCursor 食谱?

将 PySide/PyQt 小部件嵌入到 Qt/C++ 应用程序中

Python/pyside,pyqt(pyside,pyqt optional): 控制文本选择的函数

PySide/pyQt 在 QTableView 中显示数据

PySide / PyQt QStyledItemDelegate 表中的列表