Нужна помощь. Не могу понять что не так.
Программа в режиме консоли работала норм.
Прикрутил интерфейс QT. все настроил, из изменений только то что стал передавать путь к файлу не напрямую вписывая его а через переменную.
Без QT передача через переменную тоже нормально работает.
Н почему то при запуски через интерфейс QT программа закрывается. Без ошибок только дает информацию
Process finished with exit code -1073740791 (0xC0000409)
Методом научного тыка понял где программа обрывается. но строке с with.
def import_csv_orders(orders_file): # импорт csv в базу данных
con = sqlite3.connect('razbor.db')
cur = con.cursor()
orders = orders_file
with open(orders, newline='') as csvfile: # чтение файла
rows = csv.reader(csvfile, delimiter=';') # чтение файла
counter = 0
Не могу понять как графический интерфейс QT заставляет работать криво рабочий код? подскажите как решить это?
Ниже полностью код.
import sys
from tkinter.filedialog import askopenfilename
from moduls import *
from PyQt6 import uic
from PyQt6.QtWidgets import QApplication, QLCDNumber
from PyQt5 import QtCore, QtWidgets
Form, Window = uic.loadUiType("mainWindow.ui")
def marker_fn():
marker = True
return marker
def start_program():
print('Старт выполнения основной части')
clear_tables() # очищаем базу данных.
print("clear_tables")
import_csv_orders(orders_file) # импорт в базу данных ордерc
print('import_csv_orders')
import_160_cont(cont_files) # импорт 160 в базу данных
print('import_160_cont')
import_route(route_files) # импорт маршрутов в базу данных
print('import_route')
import_fragility() # импорт хрупкости в базу данных
print('import_fragility')
creation_of_pallets() # заполняем базу данных для формирования паллет ячеек
print('creation_of_pallets')
formation_of_pallet_cells() # Обработка контейнера добавление хрупкости сортировка ( номером ячейки считать ID строки)
print('formation_of_pallet_cells')
uploading_to_excel() # Записываем все в эксель
print('uploading_to_excel')
style_excel() # размечаем таблицы excel
print('style_excel')
marker_fn()
print('Выполнение основной части завершено')
def open_file_orders(): # выбор файла Ордерс
app = QtWidgets.QApplication([])
path_file = QtWidgets.QFileDialog.getOpenFileName(directory=r'C:\Users\tomhu\Desktop', filter="Data Base (*.csv)")[0]
print(path_file)
form.ordersLine.setText(path_file)
print(f"Выбран ордерс путь {path_file}")
print(type(path_file))
def open_file_160(): # выбор файла 160
app = QtWidgets.QApplication([])
path_file = QtWidgets.QFileDialog.getOpenFileName(directory=r'C:\Users\tomhu\Desktop', filter="Data Base (*.csv)")[0]
print(path_file)
form.ordersLine_2.setText(path_file)
print(f"Выбран 160 путь {path_file}")
print(type(path_file))
def open_file_route(): # выбор файла маршрутизации
app = QtWidgets.QApplication([])
path_file = QtWidgets.QFileDialog.getOpenFileName(directory=r'C:\Users\tomhu\Desktop', filter="Data Base (*.csv)")[0]
print(path_file)
form.ordersLine_3.setText(path_file)
print(f"Выбран route путь {path_file}")
print(type(path_file))
marker = False
app = QApplication([])
window = Window()
form = Form()
form.setupUi(window)
window.show()
orders_file = form.ordersSelect.clicked.connect(open_file_orders) # задаем функцию на нажатие кнопки
cont_files = form.select160.clicked.connect(open_file_160) # задаем функцию на нажатие кнопки
route_files = form.selectRoute.clicked.connect(open_file_route) # задаем функцию на нажатие кнопки
form.startBatton.clicked.connect(start_program)
app.exec()
ну и модуль где он обрывается. Остальным кодом думаю не стоит Вас грузить.
def import_csv_orders(orders_file): # импорт csv в базу данных
con = sqlite3.connect('razbor.db')
cur = con.cursor()
orders = orders_file
with open(orders, newline='') as csvfile: # чтение файла
rows = csv.reader(csvfile, delimiter=';') # чтение файла
counter = 0
for row in rows: # разбор файла
print(row)
# присваеваем запрос переменной
sqlite_insert_query = """INSERT INTO orders
(supply, customer_name, customer, code_ps_d, material, scope_of_delivery, unit, quantity_in_pieces, picking_date, batch, fresh, vsd, Transporting_the_second_arm)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"""
cur.executemany(sqlite_insert_query, rows) # запрос совместно с кортежем данных из csv файла
counter += 1
con.commit()
color_txt_print('База Orders загружена успешно', 'система')