1
我写过这个小程序。它从配置文件中读取几个文件名(主要是PDF),并为每个应使用默认应用程序打开文件的文件创建一个按钮。TkInter所有按钮打开同一个文件
问题是,所有按钮总是打开config.ini文件中的最后一个文件。这种行为告诉我for循环必须有问题,但我不知道如何解决它。
任何想法?
from tkinter import *
import subprocess, os, sys
def opendoc(file):
if sys.platform == 'linux':
subprocess.call(["xdg-open", file])
else:
os.startfile(file)
ini = open('config.ini')
carray = []
for line in ini:
carray.append(line)
for line in carray:
print(line)
master = Tk()
for i in carray:
Button(master, text=i, command=lambda: opendoc(i)).pack(anchor=W)
mainloop()
因为在最后一次迭代中,'i'被设置为最终值,因此所有按钮都指向该值。 –