Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
成功执行Tkinter代码(Python 2.7)_Python_Tkinter - Fatal编程技术网

成功执行Tkinter代码(Python 2.7)

成功执行Tkinter代码(Python 2.7),python,tkinter,Python,Tkinter,我有以下代码: from Tkinter import * class App(Frame): def __init__(self, master): Frame.__init__(self, master) self.grid() self.create_widgets() def create_widgets(self): self.entryLabel

我有以下代码:

from Tkinter import *

    class App(Frame):
        def __init__(self, master):
            Frame.__init__(self, master)
            self.grid()
            self.create_widgets()

        def create_widgets(self):
            self.entryLabel = Label(self, text="Please enter a list of numbers (no commas):")
            self.entryLabel.grid(row=0, column=0, columnspan=2)

            self.listEntry = Entry(self)
            self.listEntry.grid(row=0, column=2, sticky=E)

            self.entryLabel = Label(self, text="Please enter an index value:")
            self.entryLabel.grid(row=1, column=0, columnspan=2, sticky=E)

            self.indexEntry = Entry(self)
            self.indexEntry.grid(row=1, column=2)

            self.runBttn = Button(self, text="Run Function", command=self.psiFunction)
            self.runBttn.grid(row=2, column=0, sticky=W)

            self.answerLabel = Label(self, text="Output List:")
            self.answerLabel.grid(row=2, column=1, sticky=W)

        def psiFunction(self):
            j = int(self.indexEntry.get())
            valueList = list(self.listEntry.get())
            x = map(int, valueList)
            if x[0] != 0:
                x.insert(0, 0)
            rtn = []
            for n2 in range(0, len(x) * j - 2):
                n = n2 / j
                r = n2 - n * j
                rtn.append(j * x[n] + r * (x[n + 1] - x[n]))
            self.answer = Label(self, text=rtn)
            self.answer.grid(row=2, column=2, sticky=W)


    if __name__ == "__main__":
        root = Tk()
        app = App(root)
        root.mainloop()

但每次我尝试运行它时,它都会给我语法错误。特别是,它告诉我缩进(意外缩进)有问题。我不能在空闲状态下运行它,因为主循环会产生问题,而且我在试图通过终端甚至Komodo运行它时似乎遇到了错误。有没有人有一个可靠的方法,一步一步地让它运行?真的有语法错误吗?谢谢。

您似乎有一些缩进问题。Python不是自由形式,因此需要注意缩进:

from Tkinter import *

class App(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()

    def create_widgets(self):
        self.entryLabel = Label(self, text="Please enter a list of numbers (no commas):")
        self.entryLabel.grid(row=0, column=0, columnspan=2)

        self.listEntry = Entry(self)
        self.listEntry.grid(row=0, column=2, sticky=E)

        self.entryLabel = Label(self, text="Please enter an index value:")
        self.entryLabel.grid(row=1, column=0, columnspan=2, sticky=E)

        self.indexEntry = Entry(self)
        self.indexEntry.grid(row=1, column=2)

        self.runBttn = Button(self, text="Run Function", command=self.psiFunction)
        self.runBttn.grid(row=2, column=0, sticky=W)

        self.answerLabel = Label(self, text="Output List:")
        self.answerLabel.grid(row=2, column=1, sticky=W)

    def psiFunction(self):
        j = int(self.indexEntry.get())
        valueList = list(self.listEntry.get())
        x = map(int, valueList)
        if x[0] != 0:
            x.insert(0, 0)
        rtn = []
        for n2 in range(0, len(x) * j - 2):
            n = n2 / j
            r = n2 - n * j
            rtn.append(j * x[n] + r * (x[n + 1] - x[n]))
        self.answer = Label(self, text=rtn)
        self.answer.grid(row=2, column=2, sticky=W)


if __name__ == "__main__":
    root = Tk()
    app = App(root)
    root.mainloop()

还有什么语法错误?@mbdavis编辑。它们是缩进错误。@Stopwatch类和if name==“main”:应该在主级别,所以取消缩进导入下面的所有内容level@mbdavis非常感谢,我知道这也是jh314所做的。@秒表没问题!