在QHeaderView类内的Button触发的插槽中获取正确的父级

问题描述

出于某种运动,我正在和 @ekhumoro a demo code一起玩(原始Qt4代码的所有功劳都归于他),他在其中插入了新行{{ 1}}个小部件放入QLineEdit中的QHeaderview中。我将代码移植到Qt5,并开始向标题添加其他小部件。 QTableViewQComboBox,空白(QCheckBox)和QWidget没问题。

enter image description here

但是,当我创建包含QPushButtonQWidget(是在“三”列中带有“ =”符号的QHBoxLayout)的组合{ }}。所有控件都链接到相关的插槽,并且运行正常,包括第三列的组合字段中的QPushButton,但该组合控件中的QLineEdit除外。 QLineEdit插槽def应该在值之间循环按钮的QPushButton。我总是得到一个错误:

ChangeIntButtonSymbol(self)

,这表示与其他情况不同,此处的父级(由Text检索)窗口小部件的上下文不同,def作为父级接收了AttributeError: 'FilterHeader' object has no attribute 'text' 类,而不是self.sender() 。我也尝试使用lambda传递参数:

FilterHeader

...但是结果完全相同(错误中的措词不同)。

很显然,我没有完全了解此btn扩展的体系结构,并且犯了一些基本的错误。完整的演示下面,单击“ =”按钮时出现问题,赞赏任何解决方案或提示。

self.btn.clicked.connect(lambda: self.changebuttonsymbol.emit(self.btn))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)