问题描述
我又遇到了一个问题,我不知道为什么......所有需要的代码都总结在这个屏幕截图中: Code
“pixela_brain.py”中两个打印语句所在的部分是问题区域:
- print("Before opening UIcreateuser") 按预期显示
- “create_user.py”中的打印(“x 被点击”)也按预期显示
- 但是在“create_user.py”中的“self.destroy()”之后,print("After Closing UIcreateuser") 应该也打印出来,但它没有。
- 只有在关闭 Main Tk 窗口后,第二个打印语句才会执行。
这是为什么?我希望在从 UIcreateuser Toplevel-Window 杀死主循环后,方法“create_user(self)”应该执行到最后。
这是用于复制/粘贴目的的代码:
main.py
from ui_root import UiRoot
app = UiRoot()
pixela_brain.py
from popup_windows.create_user import Uicreateuser
class PixelaBrain:
def __init__(self):
pass
def create_user(self):
print("Before opening UIcreateuser")
self.new_user = Uicreateuser()
print("After Closing UIcreateuser")
ui_root.py
from tkinter import Tk,Button
from pixela_brain import PixelaBrain
class UiRoot(Tk):
def __init__(self):
super().__init__()
self.brain = PixelaBrain()
self.button = Button(self,text="Button",command=self.click)
self.button.pack()
self.mainloop()
def click(self):
self.brain.create_user()
create_user.py
from tkinter import Toplevel
class Uicreateuser(Toplevel):
def __init__(self):
super().__init__()
self.protocol("WM_DELETE_WINDOW",self.click_x)
self.grab_set()
self.mainloop()
def click_x(self):
print("x is clicked")
self.destroy()
非常感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)