weixin_41657202 2024-08-04 23:02 采纳率: 64.7%
浏览 20

想在pyqt5的tablewidget中的水平列标题上添加checkbox复选框,同时给每一个复选框绑定一个槽函数

问题A:我想实现这样一个功能,在pyqt5的tablewidget组件的水平列标题上设置一个复选框,且每一个复选框都绑定一个槽函数,槽函数会进行一部分我设置的特定功能。
我做的尝试:我问过ai,也查过一些资料,大多都是重写header这个类,然后在这个类中设置并添加checkbox。可是在header类中设置了checkbox后如何绑定主类的槽函数呢?,主类是运行的主程序,在其中实例化自定义(重写)的header类,在勾选状态发生变化时我想让其激活一下主类中的槽函数,这样我就可以通过自定义槽函数来进行许多动作。
我做过在每一个tablewidget中添加combobx并绑定信号的功能,我是这样做的:

def fuc_1(self):
combobox_1 =QCombobox()
combobox_1.activated.connect(self.fuc_2)
return combobox

难题B:AI曾帮助我做了一个在主程序中创建checkbox并在主程序中绑定槽函数,槽函数也是主程序中的,创建完毕checkbox后在将其添加到自定义的header类中,以此完成在标题列设置checkbox并绑定信号的功能,可是这个方法的结果是功能能实现,但是勾选框却整体向左上方移动了。
请问我该如何实现问题A出提到的功能呢?以及何谓对难题B有什么看法呢?

  • 写回答

1条回答 默认 最新

  • 火花20180731 2024-08-05 17:38
    关注

    重写headerview是为了支持全选操作,添加了一个checkbox得把checkbox的状态引出去,也就是要添加一个void globalStateChanged(bool checked)信号,当表头复选框被点击时才会触发这个globalStateChanged,而列表中某行被勾选则也要引出一个void globalStateChanged(int state),按照当前所有行的勾选情况触发全选框全选/不选/部分选。对应的要给出槽函数处理相关信号。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月4日