Gtk_widget.destroy,remove不起作用;在python中复制小部件

问题描述

我想实现的目标

我正在尝试刷新由gtk堆栈组成的gui的内容。我要实现的目标是:如果数据库中进行了更改,则利用它的gui元素(即条目完成)将得到刷新。每个堆栈窗格/页面都被编写为单独的python文件/类。一个主类会导入所有这些页面并创建主窗口。

我正在使用的技术是从主容器中删除旧的窗口小部件(它本身是一个容器),重新创建新的窗口小部件(容器)并将其添加到主容器中。容器位于不同的类中。因此,我在类之间传递容器/小部件作为参数。

主要问题:
当gtk.entry小部件中有一些文本时,就会出现问题。与其删除旧的而不创建新的,而是创建一个重复的。如果条目小部件中没有文本,则一切正常。为了进行故障排除,我尝试更改新容器的变量/对象名称,但问题仍然存在。奇怪的是,我尝试仅删除该小部件,而不添加新的小部件。它有效,什么都没有。因此,我得出的结论是mastercontainer.add(childcontainer),这里引入了问题。请指导。

这是短代码

#bph to be refreshed,so deleting and recreating

invoicingBox.remove(bph)   #invoicingBox is master container,bph is child container

bph.destroy()

bph2=guiinvoicingins.billingpage() #guiinvoicingins is instance of class having child container code,this returns a child container

invoicingBox.add(bph2)
#even if i name bph2 as bph,it does not work.

invoicingBox.show_all()

我需要提供任何进一步的信息

完整的项目在这里https://github.com/BT40/Orteal-PyBilling

解决方法

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

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

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