【发布时间】:2019-01-17 10:33:47
【问题描述】:
我正在尝试为一个学校项目创建一个菜单,并希望它能够读取给定目录中的文件并根据那里的文件在屏幕上创建按钮。我目前的主要问题是我无法让按钮发送我需要的信息。
我尝试以不同的方式使用这些功能,但这是最接近我想要的方式。
class Menu(Frame):
def __init__(self, master=None):
#working out how big to make the window
global files_in_area
files_in_area = []
files_in_area = os.listdir(menu_folder_loc)
print files_in_area
a = len(files_in_area)
b = 3
rows = a / b
rows = rows + 1
window_height = rows * 56
root.geometry('%dx%d+%d+%d' % (450, window_height, 0, 0))
Frame.__init__(self, master)
self.master = master
self.init_menu()
def init_menu(self):
self.master.title("Menu")
self.pack(fill=BOTH, expand=1)
for i in range(0, len(files_in_area)):
#button placment
a = i
b = 3
row_no = a / b
row_no = row_no + 1
column_no = a % b
global file_name
file_name = str(files_in_area[i])
b1 = Button(self, text=file_name, bg= "red", height=3, width=20, command=self.client_print_file).grid(row=row_no, column=column_no, sticky=W)
def client_print_file(self):
print file_name
当我找到文件并将它们放入 tkinter 窗口时,我的代码可以工作,当我点击按钮时,它应该打开文件(我现在只是打印文件名来制作确保它有效)。但是它只打印列表中的最后一个文件。
对不起,如果这个问题有点令人困惑,在此先感谢。
【问题讨论】:
-
“打印列表中的最后一个文件。”:它不打印来自
files_in_area的任何内容,您正在打印global file_name的值。 -
我尝试为按钮使用一个值,以便我可以从主数组本身读取它,但我无法让它工作,它总是说不正确的数量给出了论据。有什么办法可以解决吗?
-
“有什么办法可以解决吗?”:可以,搜索
[python] [tkinter] [button]
标签: python python-2.7 tkinter