方法在启动程序时自动调用

时间:2018-09-13 01:32:37

标签: python oop tkinter

我正在开发一个程序,该程序从电子表格中获取数据并将其输入到合同模板中,然后将其转换为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还是相当陌生,所以我可能会缺少一些基本知识。任何指导将不胜感激。

0 个答案:

没有答案