我正在开发一个程序,该程序从电子表格中获取数据并将其输入到合同模板中,然后将其转换为PDF。我已经使用tkinter创建了一个简单的GUI,我希望有一个按钮可以打开一个新窗口,允许用户选择他们要使用的.xlsx文件。在程序启动时,我似乎无法弄清楚如何在不调用importSpread
方法的情况下运行程序。
这是我代码的相关部分:
import os
from tkinter import *
from tkinter import filedialog
class GUI:
def __init__(self, master):
self.master = master
self.root = os.path.dirname(os.path.abspath(__file__)) + '\\'
self.importButton = Button(master, text = 'Import Spreadsheet',
command = self.importSpread,
height = 1, width = 20)
self.importButton.grid(row = 1, column = 2, sticky = W)
def importSpread(self):
my_filetypes = [('excel files', '.xlsx')]
fileName = filedialog.askopenfilename(parent = self.master,
initialdir = self.root,
title = "Please select a file:",
filetypes = my_filetypes)
return fileName
window = Tk()
myGUI = GUI(window)
fileName = self.importSpread()
window.mainloop()
好像我说myGUI
实例化myGUI = GUI(window)
对象一样,就会自动调用importSpread
方法。我还希望importSpread
返回fileName
,以便以后使用。如何在不调用方法本身的情况下保留方法返回的值?我希望程序能够启动并保持静态,直到用户按下"Import Spreadsheet"
按钮为止。一般而言,我对python和GUI还是相当陌生,所以我可能会缺少一些基本知识。任何指导将不胜感激。