TypeError: openFile () принимает ровно 1 аргумент (задано 0) - PullRequest
0 голосов
/ 11 ноября 2019

Я получаю сообщение об ошибке "TypeError: openFile () принимает ровно 1 аргумент (задано 0)"

Если я удаляю self из метода open File, он запускает метод и открывает окно выбора файла, но затемя не буду отказываться от моего другого метода refreshVECs

from Tkinter import Tk, Menu, Listbox
from tkFileDialog import askopenfilename
from xml.dom import minidom


class main:
    global filename
    filename = ""
    global mydoc
    mydoc = ""

    def refreshVECs(self,mydoc):
        VECS = self.getVECs(mydoc)
        counter = 0
        self.vecBox.delete(0, 'end')
        for elem in VECS:
            vecString = elem.attributes['id'].value
            self.vecBox.insert(counter, vecString)
            counter = counter + 1

    def openFile(self):
        Tk().withdraw()
        self.filename = askopenfilename()
        print('\n FileName ', filename)
        self.mydoc = minidom.parse(filename)
        self.refreshVECs(mydoc)

    root = Tk()
    root.title("File Viewer V1.0")
    root.geometry("600x600")


    # ===========MENU======
    menubar = Menu(root)
    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="New", command="")
    filemenu.add_command(label="Open", command=openFile)
    filemenu.add_command(label="Save", command='')
    menubar.add_cascade(label="File", menu=filemenu)
    root.config(menu=menubar)


    vecBox = Listbox(root, width=50, height=14)
    vecBox.grid(row=1, column=0, padx=15, pady=5,columnspan = 3)
    root.mainloop()

mymain = main()

1 Ответ

0 голосов
/ 11 ноября 2019

класс main: глобальное имя файла filename = "" global mydoc mydoc = ""

def refreshVECs(self,mydoc):
    VECS = mydoc.getElementsByTagName('VEC')
    counter = 0
    self.vecBox.delete(0, 'end')
    for elem in VECS:
        vecString = elem.attributes['id'].value
        self.vecBox.insert(counter, vecString)
        counter = counter + 1

def openFile(self):
    Tk().withdraw()
    filename = askopenfilename()
    print('\n FileName ', filename)
    mydoc = minidom.parse(filename)
    self.refreshVECs(mydoc)

# ===========MENU======
def __init__(self, master):
    self.master = master
    master.title("A simple GUI")
    master.geometry("600x600")
    menubar = Menu(root)
    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="New", command="")
    filemenu.add_command(label="Open", command=self.openFile)
    filemenu.add_command(label="Save", command='')
    menubar.add_cascade(label="File", menu=filemenu)
    root.config(menu=menubar)

    self.vecBox = Listbox(root, width=50, height=14)
    self.vecBox.grid(row=1, column=0, padx=15, pady=5,columnspan = 3)
    root.mainloop()

root = Tk () mymain = main (root)

...