Как сделать так, чтобы программа работала после выбора нового файла

У меня есть программа с интерфейсом pyqt5. Изначально я выбираю через кнопку путь к файлу базы данных, потом нажимаю "построить график" в каждой из вкладок и в них всех строится графики через matplotlib. Но если я выбираю другой файл, после того как графики построил, и нажимаю "построить график" еще раз, то программа ничего не выполняет.

Как сделать так, чтобы после нажатия "построить график" программа строила новые графики по новой бд из нового файла? введите сюда описание изображения Код большой и может быть непонятный :С

import sys  # sys нужен для передачи argv в QApplication
import os  # Отсюда нам понадобятся методы для отображения содержимого директорий
from PyQt5 import QtWidgets, QtCore, QtGui
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
import design2  # Это наш конвертированный файл дизайна
from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy, QVBoxLayout, QMessageBox, QWidget
from matplotlib.backends.backend_qt5 import NavigationToolbar2QT as NavigationToolbar
from create_Graph import getGraph


class MyMplCanvas(FigureCanvas):
    def __init__(self, fig, parent=None):
        self.fig = fig
        FigureCanvas.__init__(self, self.fig)
        FigureCanvas.setSizePolicy(self, QSizePolicy.Expanding, QSizePolicy.Expanding)
        FigureCanvas.updateGeometry(self)

class Window(QtWidgets.QMainWindow, design2.Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)  # Это нужно для инициализации нашего дизайна
        self.EnterBD_2.clicked.connect(self.getFileName)
        self.Button1.clicked.connect(self.getFirst)
        self.Button2.clicked.connect(self.getSecond)
        self.Button3.clicked.connect(self.getThird)
        self.Button4.clicked.connect(self.getFourth)
        self.wb_path = ""
        self.strError = ""
        self.WindowError = QMessageBox()

    def Error(self):
        msg = True
        if (self.wb_path == ""):
            self.showError("Спочатку оберіть файл бази даних")
            self.WindowError.show()
            msg = False
        elif(self.wb_path[-4:] != 'xlsx'):
            self.showError("Оберіть файл формату xlsx")
            self.WindowError.show()
            msg = False
        return msg

    def showError(self, str):
        self.WindowError.setIcon(QMessageBox.Critical)
        self.WindowError.setWindowTitle("Помилка!")
        self.WindowError.setText(str)
        self.WindowError.setStandardButtons(QMessageBox.Ok)

    def getFileName(self):
        wb_path = QtWidgets.QFileDialog.getOpenFileName(self, "Оберіть базу даних")
        self.wb_path = wb_path[0]

    def getFirst(self, Graph):
        if(self.Error()):
            Graph = getGraph(self.wb_path)
            self.fig = Graph.printGraphFirst()
            self.widget = QtWidgets.QVBoxLayout(self.widget)
            # получение объекта класса холста с нашим рисунком
            self.canavas = MyMplCanvas(self.fig)
            # Размещение экземпляра класса холста в шаблоне размещения
            self.widget.addWidget(self.canavas)
            # получение объекта класса панели управления холста
            self.toolbar = NavigationToolbar(self.canavas, self)
            # Размещение экземпляра класса панели управления в шаблоне размещения
            self.widget.addWidget(self.toolbar)

    def getSecond(self, Graph):
        if(self.Error()):
            Graph = getGraph(self.wb_path)
            self.fig = Graph.printGraphSecond()
            self.widget_2 = QtWidgets.QVBoxLayout(self.widget_2)
            # получение объекта класса холста с нашим рисунком
            self.canavas_2 = MyMplCanvas(self.fig)
            # Размещение экземпляра класса холста в шаблоне размещения
            self.widget_2.addWidget(self.canavas_2)
            # получение объекта класса панели управления холста
            self.toolbar = NavigationToolbar(self.canavas_2, self)
            # Размещение экземпляра класса панели управления в шаблоне размещения
            self.widget_2.addWidget(self.toolbar)

    def getThird(self, Graph):
        if(self.Error()):
            Graph = getGraph(self.wb_path)
            self.fig = Graph.printGraphThird()
            self.widget_3 = QtWidgets.QVBoxLayout(self.widget_3)
            # получение объекта класса холста с нашим рисунком
            self.canavas_3 = MyMplCanvas(self.fig)
            # Размещение экземпляра класса холста в шаблоне размещения
            self.widget_3.addWidget(self.canavas_3)
            # получение объекта класса панели управления холста
            self.toolbar = NavigationToolbar(self.canavas_3, self)
            # Размещение экземпляра класса панели управления в шаблоне размещения
            self.widget_3.addWidget(self.toolbar)

    def getFourth(self, Graph):
        if(self.Error()):
            Graph = getGraph(self.wb_path)
            self.fig = Graph.printGraphFourth()
            self.widget_4 = QtWidgets.QVBoxLayout(self.widget_4)
            # получение объекта класса холста с нашим рисунком
            self.canavas_4 = MyMplCanvas(self.fig)
            # Размещение экземпляра класса холста в шаблоне размещения
            self.widget_4.addWidget(self.canavas_4)
            # получение объекта класса панели управления холста
            self.toolbar = NavigationToolbar(self.canavas_4, self)
            # Размещение экземпляра класса панели управления в шаблоне размещения
            self.widget_4.addWidget(self.toolbar)

def main():
    app = QtWidgets.QApplication(sys.argv)  # Новый экземпляр QApplication
    window = Window()  # Создаём объект класса ExampleApp
    window.show()  # Показываем окно
    app.exec_()  # и запускаем приложение

if __name__ == '__main__':  # Если мы запускаем файл напрямую, а не импортируем
    main()  # то запускаем функцию main())

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