pyqt中如何方便地获得TableView的单击行内容

需求背景

之前一篇中介绍了TableView如何方便地加载dataframe数据。那么加载成功后,用户还会有各种动作,比如常见的单击一行,这是需要获得被单击行的内容,应该如何做?

解决方案

网上有不少资料提供的方法都是自己创建自定义信号,传参emit出去。我试验下来发现没必要搞这么复杂,qtDesigner中有相应的信号,传出来的默认参数是QModelIndex,我们就来拿这个参数做文章。
pyqt中如何方便地获得TableView的单击行内容_第1张图片
这个ModelIndex在树组件等各个结构化数据容器组件中都很有用处,并且方法较少,建议可以好好深入研究下。在这里我们捕捉到这个参数后可以用row()或column()方法获得当前点击项目的行列索引值派下一步的用场(比如进行针对行列的增删改任务),也可以通过参数num.data()直接获得当前点击行的值。

    def get_clause_detail(self, num):
        text = num.data()

你可能感兴趣的:(Python,python,pyqt)