Python tkinter在do Some success应用程序崩溃后进入新页面框架

Python tkinter在do Some success应用程序崩溃后进入新页面框架,tkinter,Tkinter,尝试执行card_pay()方法,成功后,进入新页面(框架),我还设置了一个按钮单击下一页,按钮next_Page()正在工作,但方法card_pay失败,它将导致应用程序崩溃。下面是我更改页面的方法 self.page_6 = Page_6(self.root) self.pack_forget() self.page_6.pack() 我的代码: class Page_5(Frame): def __init__(self, master=None): Frame

尝试执行card_pay()方法,成功后,进入新页面(框架),我还设置了一个按钮单击下一页,按钮next_Page()正在工作,但方法card_pay失败,它将导致应用程序崩溃。下面是我更改页面的方法

self.page_6 = Page_6(self.root)
self.pack_forget()
self.page_6.pack()
我的代码:

class Page_5(Frame): 
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.root = master 
        self.createPage()
    def createPage(self):
        search_card=True
        Page_Image = Image.open('D:/API_nomal/page_image/5.png')
        Page_Image_PIL=ImageTk.PhotoImage(Page_Image)
        Button_Image = Image.open('D:/API_nomal/page_image/confirm.png')
        Button_Image_PIL=ImageTk.PhotoImage(Button_Image)
        label=Label(self,image=Page_Image_PIL)
        label.image=Page_Image_PIL
        button_pay=Button(self,image = Button_Image_PIL,command=lambda: self.Next_Page(),border='0',bg='white', takefocus = 0)
        button_pay.image=Button_Image_PIL
        button_pay.place(x=877, y=895)
        label.grid(row=0, column=0)
        car_pay_thread = Thread(target=self.card_pay)
        car_pay_thread.start()
    def card_pay(self):
        global search_card
        while debug_flag==True:
            try:
                if search_card== True:
                    self.page_6 = Page_6(self.root)
                    self.pack_forget()
                    self.page_6.pack()
            except Exception as e :
                print traceback.format_exc()

    def Next_Page(self):
        self.page_6 = Page_6(self.root)
        self.pack_forget()
        self.page_6.pack()

class Page_6(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.root = master
        self.createPage()

    def createPage(self):
        Page_Image = Image.open('D:/API_nomal/page_image/6.png')
        Page_Image_PIL=ImageTk.PhotoImage(Page_Image)
        label=Label(self,image=Page_Image_PIL)
        label.bind("<Button-1>",lambda e=Page_Image_PIL:self.Next_Page())
        label.pack()

    def Next_Page(self):
        self.inital_page = Initial_Page(self.root)
        self.pack_forget()
class第5页(框架):
def uuu init uuu(self,master=None):
帧。\uuuu初始化(自,主)
self.root=master
self.createPage()
def createPage(自):
搜索卡=真
Page\u Image=Image.open('D:/API\u normal/Page\u Image/5.png'))
Page\u Image\u PIL=ImageTk.PhotoImage(Page\u Image)
按钮\u Image=Image.open('D:/API\u normal/page\u Image/confirm.png')
Button\u Image\u PIL=ImageTk.PhotoImage(按钮图像)
标签=标签(自我,图像=页面\u图像\u PIL)
label.image=Page\u image\u PIL
button\u pay=button(self,image=button\u image\u PIL,command=lambda:self.Next\u Page(),border='0',bg='white',takefocus=0)
按钮\付款。图像=按钮\图像\ PIL
按钮支付位置(x=877,y=895)
label.grid(行=0,列=0)
汽车支付线程=线程(目标=自卡支付)
car\u pay\u thread.start()
def卡支付(自助):
全球搜索卡
当debug_标志==True时:
尝试:
如果搜索卡==真:
self.page_6=page_6(self.root)
self.pack_忘记()
self.page_6.pack()
例外情况除外,如e:
打印回溯。格式_exc()
def下一页(自我):
self.page_6=page_6(self.root)
self.pack_忘记()
self.page_6.pack()
课程第6页(框架):
def uuu init uuu(self,master=None):
帧。\uuuu初始化(自,主)
self.root=master
self.createPage()
def createPage(自):
Page\u Image=Image.open('D:/API\u normal/Page\u Image/6.png'))
Page\u Image\u PIL=ImageTk.PhotoImage(Page\u Image)
标签=标签(自我,图像=页面\u图像\u PIL)
label.bind(“,lambda e=Page\u Image\u PIL:self.Next\u Page())
label.pack()
def下一页(自我):
self.inital\u页面=初始页面(self.root)
self.pack_忘记()

首先,我希望您理解,您可以为所有页面创建一个类?如果每个页面都相似,您很可能不需要为它们创建新类。类可以用作模板只要
debug_flag
True
,循环中就没有任何东西可以将其更改为
False
,从而创建一个无限循环。