问题描述
我想实现的目标
我正在尝试刷新由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 (将#修改为@)