Как реализовать механизм обновления QTableWidget

Требуется сделать программу для хранения рейсов с данными по каждому. Для создании новой заметки вызывается второе окно. В него вводятся все нужные данные, и при нажатии на кнопку "Сохранить" в главном окне QTableWidget должен обновиться и показать новую запись, но он этого не делает. Весь день бился над решением проблемы, но так ни к чему и не пришел.

main.py

import sys
import sqlite3
from pathlib import Path
from sys import argv
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidgetItem, QLineEdit, QDateEdit
from addFlightNote import Ui_addFlightNote
from mainUI import Ui_MainWindow


class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        script_dir = Path(argv[0]).parent.resolve()

        db_path = script_dir / 'flightsDB.sqlite'
        self.con = sqlite3.connect(db_path)

        self.addNote.clicked.connect(self.openWindow)
        self.deleteNote.clicked.connect(self.close)
        self.updateTableButton.clicked.connect(self.selectData)

        self.tableWidget.setSortingEnabled(True)

        self.selectData()

    def close(self):
        self.close()

    def openWindow(self):
        DialogWindow = AddFlightNoteDialog()
        DialogWindow.show()
        DialogWindow.exec()

    def selectData(self):
        query = "SELECT departurePoint, departureDate, arrivalPoint, arrivalDate, price, downtime, driversFullName, " \
                "driversSalary, driversDowntime, fuelConsumption, additionalExpenses FROM flights"
        res = self.con.cursor().execute(query).fetchall()
        title = ['Дата загрузки', 'Дата выгрузки', 'Точка загрузки', 'Точка выгрузки',
                 'Цена загрузки', 'Простой\nзагрузки', 'ФИО водителя', 'Зарплата\nводителя',
                 'Простой водителя', 'Траты на бензин', 'Дополнительные\nтраты']
        self.tableWidget.setColumnCount(len(title))
        self.tableWidget.setRowCount(0)

        self.tableWidget.setHorizontalHeaderLabels(title)
        for i, row in enumerate(res):
            self.tableWidget.setRowCount(
                self.tableWidget.rowCount() + 1)
            for j, elem in enumerate(row):
                self.tableWidget.setItem(
                    i, j, QTableWidgetItem(str(elem)))
        self.tableWidget.resizeColumnsToContents()


class AddFlightNoteDialog(Ui_addFlightNote):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.acceptButton.clicked.connect(self.insertAndSaveNewNote)
        self.rejectButton.clicked.connect(self.close)

        script_dir = Path(argv[0]).parent.resolve()
        db_path = script_dir / 'flightsDB.sqlite'
        self.con = sqlite3.connect(db_path)
        self.cur = self.con.cursor()

    def insertAndSaveNewNote(self):
        values = []
        for row in range(self.gridLayout.rowCount()):
            for col in range(self.gridLayout.columnCount()):
                tempItem = self.gridLayout.itemAtPosition(row, col).widget()
                # print(isinstance(tempItem, QLineEdit))
                if isinstance(tempItem, QLineEdit):
                    values.append(tempItem.text())
                elif isinstance(tempItem, QDateEdit):
                    values.append(tempItem.date().toString('dd.MM.yyyy'))
        try:
            values.append(int(values[1]) * 0.3)
        except ValueError:
            values.append('')
        self.cur.execute(
            "INSERT INTO flights (departureDate, downtime, arrivalDate, driversFullName, departurePoint, driversSalary, "
            "arrivalPoint, fuelConsumption, price, additionalExpenses, driversDowntime) "
            "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
            tuple(values)
        )
        self.con.commit()

        self.close()


def except_hook(cls, exception, traceback):
    sys.__excepthook__(cls, exception, traceback)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    form = MainWindow()
    form.setFixedSize(1540, 640)
    form.show()
    sys.excepthook = except_hook
    sys.exit(app.exec())

mainUI

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'main.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1540, 639)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 530, 1111, 81))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.addNote = QtWidgets.QPushButton(self.horizontalLayoutWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.addNote.sizePolicy().hasHeightForWidth())
        self.addNote.setSizePolicy(sizePolicy)
        self.addNote.setObjectName("addNote")
        self.horizontalLayout.addWidget(self.addNote)
        self.editNote = QtWidgets.QPushButton(self.horizontalLayoutWidget)
        self.editNote.setObjectName("editNote")
        self.horizontalLayout.addWidget(self.editNote)
        self.deleteNote = QtWidgets.QPushButton(self.horizontalLayoutWidget)
        self.deleteNote.setEnabled(True)
        self.deleteNote.setObjectName("deleteNote")
        self.horizontalLayout.addWidget(self.deleteNote)
        self.updateTableButton = QtWidgets.QPushButton(self.horizontalLayoutWidget)
        self.updateTableButton.setObjectName("updateTableButton")
        self.horizontalLayout.addWidget(self.updateTableButton)
        self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
        self.tableWidget.setGeometry(QtCore.QRect(20, 20, 1341, 501))
        self.tableWidget.setObjectName("tableWidget")
        self.tableWidget.setColumnCount(0)
        self.tableWidget.setRowCount(0)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1540, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.addNote.setText(_translate("MainWindow", "Добавить"))
        self.editNote.setText(_translate("MainWindow", "Редактировать"))
        self.deleteNote.setText(_translate("MainWindow", "Удалить"))
        self.updateTableButton.setText(_translate("MainWindow", "Обновить таблицу"))

addFlightNote.py

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'addFlightNote.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QDialog


class Ui_addFlightNote(QDialog):
    def setupUi(self, addFlightNote):
        addFlightNote.setObjectName("addFlightNote")
        addFlightNote.resize(640, 480)
        self.gridLayoutWidget = QtWidgets.QWidget(addFlightNote)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 20, 601, 441))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setObjectName("gridLayout")
        self.downtime = QtWidgets.QLabel(self.gridLayoutWidget)
        self.downtime.setObjectName("downtime")
        self.gridLayout.addWidget(self.downtime, 0, 1, 1, 1)
        self.additionalExpensesEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
        self.additionalExpensesEdit.setObjectName("additionalExpensesEdit")
        self.gridLayout.addWidget(self.additionalExpensesEdit, 9, 1, 1, 1)
        self.departurePoint = QtWidgets.QLabel(self.gridLayoutWidget)
        self.departurePoint.setObjectName("departurePoint")
        self.gridLayout.addWidget(self.departurePoint, 4, 0, 1, 1)
        self.arrivalPointEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
        self.arrivalPointEdit.setObjectName("arrivalPointEdit")
        self.gridLayout.addWidget(self.arrivalPointEdit, 7, 0, 1, 1)
        self.departurePointEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
        self.departurePointEdit.setObjectName("departurePointEdit")
        self.gridLayout.addWidget(self.departurePointEdit, 5, 0, 1, 1)
        self.arrivalDateEdit = QtWidgets.QDateEdit(self.gridLayoutWidget)
        self.arrivalDateEdit.setObjectName("arrivalDateEdit")
        self.gridLayout.addWidget(self.arrivalDateEdit, 3, 0, 1, 1)
        self.arrivalDate = QtWidgets.QLabel(self.gridLayoutWidget)
        self.arrivalDate.setObjectName("arrivalDate")
        self.gridLayout.addWidget(self.arrivalDate, 2, 0, 1, 1)
        self.priceEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
        self.priceEdit.setObjectName("priceEdit")
        self.gridLayout.addWidget(self.priceEdit, 9, 0, 1, 1)
        self.departureDateEdit = QtWidgets.QDateEdit(self.gridLayoutWidget)
        self.departureDateEdit.setObjectName("departureDateEdit")
        self.gridLayout.addWidget(self.departureDateEdit, 1, 0, 1, 1)
        self.fuelConsumptionEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
        self.fuelConsumptionEdit.setObjectName("fuelConsumptionEdit")
        self.gridLayout.addWidget(self.fuelConsumptionEdit, 7, 1, 1, 1)
        self.fuelConsumption = QtWidgets.QLabel(self.gridLayoutWidget)
        self.fuelConsumption.setObjectName("fuelConsumption")
        self.gridLayout.addWidget(self.fuelConsumption, 6, 1, 1, 1)
        self.departureDate = QtWidgets.QLabel(self.gridLayoutWidget)
        self.departureDate.setObjectName("departureDate")
        self.gridLayout.addWidget(self.departureDate, 0, 0, 1, 1)
        self.driversSalary = QtWidgets.QLabel(self.gridLayoutWidget)
        self.driversSalary.setObjectName("driversSalary")
        self.gridLayout.addWidget(self.driversSalary, 4, 1, 1, 1)
        self.driversFullNameEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
        self.driversFullNameEdit.setObjectName("driversFullNameEdit")
        self.gridLayout.addWidget(self.driversFullNameEdit, 3, 1, 1, 1)
        self.driversSalaryEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
        self.driversSalaryEdit.setObjectName("driversSalaryEdit")
        self.gridLayout.addWidget(self.driversSalaryEdit, 5, 1, 1, 1)
        self.price = QtWidgets.QLabel(self.gridLayoutWidget)
        self.price.setObjectName("price")
        self.gridLayout.addWidget(self.price, 8, 0, 1, 1)
        self.additionalExpenses = QtWidgets.QLabel(self.gridLayoutWidget)
        self.additionalExpenses.setObjectName("additionalExpenses")
        self.gridLayout.addWidget(self.additionalExpenses, 8, 1, 1, 1)
        self.arrivalPoint = QtWidgets.QLabel(self.gridLayoutWidget)
        self.arrivalPoint.setObjectName("arrivalPoint")
        self.gridLayout.addWidget(self.arrivalPoint, 6, 0, 1, 1)
        self.driversFullName = QtWidgets.QLabel(self.gridLayoutWidget)
        self.driversFullName.setObjectName("driversFullName")
        self.gridLayout.addWidget(self.driversFullName, 2, 1, 1, 1)
        self.downtimeEdit = QtWidgets.QLineEdit(self.gridLayoutWidget)
        self.downtimeEdit.setObjectName("downtimeEdit")
        self.gridLayout.addWidget(self.downtimeEdit, 1, 1, 1, 1)
        self.acceptButton = QtWidgets.QPushButton(self.gridLayoutWidget)
        self.acceptButton.setObjectName("acceptButton")
        self.gridLayout.addWidget(self.acceptButton, 10, 0, 1, 1)
        self.rejectButton = QtWidgets.QPushButton(self.gridLayoutWidget)
        self.rejectButton.setObjectName("rejectButton")
        self.gridLayout.addWidget(self.rejectButton, 10, 1, 1, 1)

        self.retranslateUi(addFlightNote)
        QtCore.QMetaObject.connectSlotsByName(addFlightNote)

    def retranslateUi(self, addFlightNote):
        _translate = QtCore.QCoreApplication.translate
        addFlightNote.setWindowTitle(_translate("addFlightNote", "Dialog"))
        self.downtime.setText(_translate("addFlightNote", "Простой загрузки"))
        self.departurePoint.setText(_translate("addFlightNote", "Точка загрузки"))
        self.arrivalDate.setText(_translate("addFlightNote", "Дата выгрузки "))
        self.fuelConsumption.setText(_translate("addFlightNote", "Топливо"))
        self.departureDate.setText(_translate("addFlightNote", "Дата загрузки"))
        self.driversSalary.setText(_translate("addFlightNote", "Зарплата водителя"))
        self.price.setText(_translate("addFlightNote", "Цена загрузки"))
        self.additionalExpenses.setText(_translate("addFlightNote", "Доп. траты"))
        self.arrivalPoint.setText(_translate("addFlightNote", "Точка выгрузки"))
        self.driversFullName.setText(_translate("addFlightNote", "ФИО водителя"))
        self.acceptButton.setText(_translate("addFlightNote", "Сохранить"))
        self.rejectButton.setText(_translate("addFlightNote", "Отмена"))

Ответы (0 шт):