从子类 PyQT5 调用父类
Posted
技术标签:
【中文标题】从子类 PyQT5 调用父类【英文标题】:Call parent class from child class PyQT5 【发布时间】:2019-03-09 07:02:25 【问题描述】:人。 我又来这里尝试解决问题了。 我所有的代码都可以在这里看到:
https://gitlab.com/zoiobnu/comissiosystem
我有一个带有 MainWindow 的 Main.py ,它有 menu, toolbar 。然后工具栏用 form 调用 Widget 。此表单有一个搜索按钮 (Pesquisar),可打开对话框并关闭小部件。
ItemForm.py
def search(self):
item_search = ItemSearch(self)
item_search.show()
self.close()
比起这个新的搜索对话框,我可以在 DB 中搜索并获取 ID。
ItemSearch.py
@pyqtSlot()
def on_click(self):
item_form = ItemForm(codigo=self.grdPesquisaCliente.item(self.grdPesquisaCliente.currentRow(), 0).text())
item_form.show()
ItemSearch.close()
我现在可以双击行并获取单元格 id,但我想使用此单元格 id 返回到第一个表单并使用 db 数据填充字段。
但我不知道如何使这项工作。
【问题讨论】:
如果我对问题的理解正确,您应该能够在 itemSearch 中创建一个信号,该信号在双击时将行的文本作为元组发出。您只需要将信号连接到先前表单中的 `set_item(item)` 方法并在 itemForm 中的 lineEdit 上调用setText(item[...])
。
【参考方案1】:
为了解决这个问题,我做了这个! 在父类上创建一个新方法来填充表单,然后用 self.parent() 调用
ItemSearch.py
@pyqtSlot()
def on_click(self):
self.parent().fill_data(codigo=self.grdPesquisaCliente.item(self.grdPesquisaCliente.currentRow(), 0).text())
self.close()
然后在 ItemForm 上,我只是修复了打开对话框后不关闭表单的方法。
itemform.py
def search(self):
item_search = ItemSearch(self)
item_search.show()
【讨论】:
以上是关于从子类 PyQT5 调用父类的主要内容,如果未能解决你的问题,请参考以下文章