Python跳过了我的一个功能

时间:2017-11-17 03:21:27

标签: python tkinter

我使用tkinter帧来调用另一个tkinter帧。因此,从第一帧开始,我将点击一个按钮,它将检查C:\上是否有文件,如果该文件不存在,则应调用Chrome_gui函数,该函数是tkinter的另一个"def p2(self)"帧{1}}。调用Chrome_gui时,它将创建测试文件,并再次调用self.p2以检查文件是否存在。但它将成为一个永无止境的循环,因为函数self.Chrome_gui未被调用。当我删除self.p2时,可以调用函数self.Chrome_gui。那么有人能告诉我为什么它会跳过self.Chrome_gui函数吗?

def __init__(self):
    tk.Tk.__init__(self)
    tk.Tk.title(self,"qwerty")
    self.b1 = tk.Button(self, text="P2", command = self.p2)
    self.b1.grid(row = 3, column = 1, sticky = 'EWNS' )


def p2 (self):
            self.values()
    print ('printdwo')
    my_file1 = Path("C:\test.pdf")
    if my_file1.is_file():
        print ("File Found")
    else:
        print ('not found')
        self.Chrome_gui()
        self.p2()


def Chrome_gui(self):
    self.chrome = tk.Tk()
    self.chrome.title('Date')
    self.label = tk.Label(self.chrome, text="", width=20)
    self.label.grid(row = 1, column = 1)

    self.c1 = tk.Button(self.chrome, text="Yes", command = self.yes)
    self.c1.grid(row = 2, column = 1, sticky = W+E)#side = LEFT)
    global e
    e = ""
    self.c2 = tk.Button(self.chrome, text = "No" , command = self.no)
    self.c2.grid(row = 3, column = 1, sticky = W+E)#side = LEFT)

1 个答案:

答案 0 :(得分:0)

您的代码正在循环,因为您的条件if my_file1.is_file():始终为false,因此它始终在else部分中调用self.p2()

当你定义一个字符串而你想要放一个'\'时,你必须放'\'。在你的情况下,你有'\ t'所以它将替换为制表。将其替换为Path("C:\\test.pdf")