我是一个入门者,目前正在从事一个个人项目,以使用Tkinter在Python 2上开发一个小型应用程序。但是,我在调用我创建的函数时遇到问题。 1。知道Python上的Tkinter是基于事件的,为此我创建了一个按钮来上传特定文件,然后将文件中的值存储到List变量中。 2。之后,我然后使用另一个按钮尝试调用打印函数以在存储在List变量中的值内打印值。
希望有人可以帮助我。
def uploadFile():
openFile = tkFileDialog.askopenfilename(filetypes = (("",".csv"),("All
files", "*.*")))
with open(openFile) as file:
reader = csv.reader(file)
xUF = [row for row in reader]
return xUF
def printUF():
for row in xUF:
print row
count=0
if count>5:
break
count += 1
def main():
l1=tk.Label(root,text="Upload File")
l1.pack()
l1.place(x=55,y=170)
#buttons/placements for GUI
b1=tk.Button(root,text="Browse", command=uploadFile)
b1.pack()
b1.place(x=100,y=200)
b2=tk.Button(root,text="Print", command=printUF())
b2.pack()
root.title("HELLO")
root.geometry("500x500")
root.mainloop()
if __name__ == '__main__':
main()
答案 0 :(得分:0)
您在行周围缺少括号
def printUF():
for row in xUF:
print (row) <---
count=0
if count>5:
break
count += 1
答案 1 :(得分:0)
我不太清楚您的错误是什么。但我怀疑是这样的:
当我认为您只想要command=printUF()
时,您正在将Button
传递给command=printUF
类,因为Button
可能希望在被点击时调用一个函数。有了它,您就将printUF
的结果而不是函数本身传递给Button
。该行应如下所示:
b2=tk.Button(root,text="Print", command=printUF)