python - 选择无行时发出的 PyQt QTableWidget 信号

标签 python pyqt pyqt4

我在 pyQt 中有一个带有单行选择集的 QTableWidget。我正在连接 itemSelectionChanged 以调用我的行选择函数并对所选行执行操作。我还想检测用户何时在 QTableWidget 中进行选择,但选择了空白区域(未选择任何行),以便我可以取消选择任何选定的行。类似于“windows 资源管理器”处理文件选择的方式。

选择QTableWidget中的空白区域时触发什么信号?如何实现?

最佳答案

检查鼠标按下事件以查看单击的项目是否为:

class Table(QtGui.QTableWidget):
    def mousePressEvent(self, event):
        if self.itemAt(event.pos()) is None:
            self.clearSelection()
        QtGui.QTableWidget.mousePressEvent(self, event)

或者如果你不能子类化,使用事件过滤器:

class Window(QtGui.QWidget):
    def __init__(self):
        ...
        self.table.viewport().installEventFilter(self)

    def eventFilter(self, source, event):
        if (event.type() == QtCore.QEvent.MouseButtonPress and
            source is self.table.viewport() and
            self.table.itemAt(event.pos()) is None):
            self.table.clearSelection()
        return QtGui.QWidget.eventFilter(self, source, event)

关于python - 选择无行时发出的 PyQt QTableWidget 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29397056/

相关文章:

python - Flask 已经禁用 CSRF 但 self.errors 仍然有错误 "' csrf_token' : ['CSRF token missing' ]"

python - QApplication实例导致python shell运行缓慢

python - 连接到带参数的函数

python-2.7 - Python & Ubuntu 14.04\ 删除手动安装的python版本

python - 计算最高分 - Pandas 中每个供应商的最低分

python - 多列的 pandas get_level_values

python - 高效的余弦距离计算

python - 将小部件旋转一定角度

python-2.7 - PyQt 4 导入阅读文档

python - 如何写一个windows启动时自动启动的python程序?