需求背景
之前一篇中介绍了TableView如何方便地加载dataframe数据。那么加载成功后,用户还会有各种动作,比如常见的单击一行,这是需要获得被单击行的内容,应该如何做?
解决方案网上有不少资料提供的方法都是自己创建自定义信号,传参emit出去。我试验下来发现没必要搞这么复杂,qtDesigner中有相应的信号,传出来的默认参数是QModelIndex,我们就来拿这个参数做文章。 这个ModelIndex在树组件等各个结构化数据容器组件中都很有用处,并且方法较少,建议可以好好深入研究下。在这里我们捕捉到这个参数后可以用row()或column()方法获得当前点击项目的行列索引值派下一步的用场(比如进行针对行列的增删改任务),也可以通过参数num.data()直接获得当前点击行的值。
def get_clause_detail(self, num):
text = num.data()