Tkinter filedialog АскопенфайлНастройки настроек - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь использовать метод tkinter filedialog.askopenfilename (), чтобы иметь возможность выбирать файлы изображений для генератора.Я настраиваю его в классе, так как я обнаружил, что это «правильный» способ сделать это.Насколько я знаю, это должен быть правильный формат для вызова этого, хотя это всего лишь подделка тех немногих объяснений, которые я смог найти.

class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.pickedfiletypes = (('png files', '*.png'), ('jpeg files', '*.jpeg'))
        self.create_widgets()

    def create_widgets(self):
        ...

        self.fileselect = tk.filedialog.askopenfilename(self,
                                    initialdir= os.getcwd(),
                                    title= "Please select a file:",
                                    filetypes= self.pickedfiletypes)
        ...

root = tk.Tk()
app = Application(master=root)
app.mainloop()
TypeError: askopenfilename() takes 0 positional arguments but 1 was given

Все учебники и примеры, которые я вижудать ему позиционные аргументы.Это пример, который я нашел на pythonspot.com, который выглядит примерно так же, как и то, что я могу отличить от использования переменной.

root.filename =  filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("jpeg files","*.jpg"),("all files","*.*")))

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

удалить себя в

self.fileselect = tk.filedialog.askopenfilename(self,
                                    initialdir= os.getcwd(),
                                    title= "Please select a file:",
                                    filetypes= self.pickedfiletypes)

это работает!

0 голосов
/ 07 июля 2019

self не используется, потому что parent не требуется, это из-за того, что окно askopenfile, askopenfilename или askdirectory создает окно.Для справки (https://pythonspot.com/tk-file-dialogs/)

self.fileselect = tk.filedialog.askopenfilename(
                                    initialdir= os.getcwd(),
                                    title= "Please select a file:",
                                    filetypes= self.pickedfiletypes)

При использовании tkFileDialog необходимо использовать родительский элемент, у которого нет всплывающего окна.

tkFileDialog.Open(parent=self, filetypes=filetypes)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...