Stack Overflow на русском Asked on December 7, 2021
столкнулся с проблемой создал окно с кнопкой которое открывает следующие окно в котором есть кнопка для выбора файла, но выбор файла происходит при нажатие первой кнопки, а вторая остаётся неактивной
class Child(tk.Toplevel): #Настройка первого окна
def __init__(self):
super().__init__(root)
self.init_child()
self.view = app
def init_child(self):
self.title('Додати')
self.geometry('400x720+400+300')
self.resizable(False, False)
self.btn = ttk.Button(self, text='Создать файл', command=Generate) #Кнопка открытия второго окна
self.btn.place(x=50, y=480)
self.grab_set()
self.focus_set()
def Generate(self):
Window2()
class Generate(tk.Toplevel): # Настройка второго окна
def __init__(self, *arg, **kwarg):
super().__init__(*arg, **kwarg)
self.init_gen()
self.view = app
def init_gen(self):
self.title('Создать файл')
self.geometry('400x720+100+300')
self.resizable(False, False)
file = filedialog.askopenfilename()
self.btn1 = ttk.Button(self, text='Выбрать файл', command=file) #Кнопка выбора файла
self.btn1.place(x=50, y=480)
filedialog.askopenfilename()
сразу выполняет открытие диалога выбора файла, результатом вызова будет имя файла. Дальше вы полученное имя файла зачем-то указываете как команду для кнопки (очевидно, это не правильно). Делайте вызов диалога не в init_gen
, а в отдельной функции, и эту функцию укажите как команду для кнопки, пример:
class Generate(tk.Toplevel): # Настройка второго окна
...
def init_gen(self):
...
def get_file_name():
file = filedialog.askopenfilename()
# Дальше в этой же функции работайте с полученным именем файла, например, можно открыть этот файл
self.btn1 = ttk.Button(self, text='Выбрать файл', command=get_file_name) #Кнопка выбора файла
Answered by insolor on December 7, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP