Dzień dobry.
Ostatnio próbowałem napisać program, który wykorzystywałby PyQt5 oraz pyqtgraph do narysowania grafu. Program powinien wyświetlić okienko z jednym przyciskiem, po którego naciśnięciu wyświetliłoby się następne okienko z wykresem. Do tego napisałem następujący kod:

class MainWindow():
    def __init__(self):
        self.app = pq.QApplication([])
        self.window = pq.QWidget()
        self.window.setFixedSize(500,300)
        self.layout = pq.QGridLayout()

        self.button_manual = pq.QPushButton('Draw')
        self.button_manual.clicked.connect(self.draw_manual)

        self.layout.addWidget(self.button_manual)
        self.window.setLayout(self.layout)

        self.window.show()
        self.app.exec_()

    def draw_manual(self):
        x = [1,2,3,4,5,6,7,8,9,10]
        y = [30,32,34,32,33,31,29,32,35,45]
        dialog = Dialog(x,y)
        dialog.exec_()



class Dialog(pq.QDialog):
    def __init__(self,x,y):
        super(Dialog,self).__init__()
        self.app = pq.QApplication([])
        self.main = draw_graph(x,y)
        self.main.show()

class draw_graph(pq.QMainWindow):
    def __init__(self,x,y):
        pq.QMainWindow.__init__(self)
        self.graphWidget = pg.PlotWidget()
        self.setCentralWidget(self.graphWidget)
        self.graphWidget.plot(x,y)


mainWindow = MainWindow()

Po skompilowaniu programu otrzymuje pierwsze okienko poprawnie, ale po naciśnięciu przycisku pojawiają się dwa nowe okna - jedno z poprawnie narysowanym wykresem, drugie puste. Po zamknięciu pustego okna, cały program zawiesza się.
Czy ktoś mógłby mi podpowiedzieć, gdzie popełniam błąd i jak go rozwiązać? Byłbym bardzo wdzięczny.