Чтобы интегрировать функцию выбора файла через PySimpleGUI в существующий код, вам нужно изменить функцию `get_id_card()` таким образом, чтобы она принимала имя файла в качестве аргумента. Затем вы можете изменить интерфейс так, чтобы после выбора файла и нажатия кнопки "ОК" имя файла отправлялось в функцию.
Вот шаги для реализации:
1. Модифицируйте вашу функцию `get_id_card()` так, чтобы она принимала имя файла как аргумент:
```python
def get_id_card(exel_file):
df = pd.read_excel(exel_file)
df.to_sql('car', connect, index=False, if_exists='replace')
return df
```
2. Используйте значения из графического интерфейса PySimpleGUI, чтобы получить выбранное имя файла и передать его в функцию `get_id_card()`:
```python
import PySimpleGUI as sg
import pandas as pd
# Ваша функция, теперь с аргументом для файла
def get_id_card(exel_file):
df = pd.read_excel(exel_file)
df.to_sql('car', connect, index=False, if_exists='replace')
return df
# Настройки темы и макета интерфейса
sg.theme('Dark Grey 13')
layout = [
[sg.Text('Выберите файл:')],
[sg.Input(), sg.FileBrowse(key='FILE')],
[sg.OK(), sg.Cancel()]
]
# Создание и отображение окна
window = sg.Window('Get filename example', layout)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Cancel'):
break
if event == 'OK':
# Проверка, что пользователь выбрал файл
if values['FILE']:
filepath = values['FILE']
# Передача этого пути файла в функцию
df = get_id_card(filepath)
print(df) # Для демонстрации результата
else:
sg.popup('Файл не выбран!', title='Ошибка')
window.close()
```
Используя интерфейс PySimpleGUI, пользователь может выбрать файл через диалоговое окно "Browse" и этот файл будет аргументом для функции `get_id_card`. Обратите внимание, что выше приведено общее руководство и ваша реальная реализация может немного отличаться в зависимости от специфики вашего кода и требований.