PyQt5 ошибка C/C++ object of type QWidget has been deleted

Ошибка такая "RuntimeError: wrapped C/C++ object of type QWidget has been deleted" удаляет объект. когда переходим ко второй странице (второй файл) при нажатии на кнопку, но когда нажимаем кнопку на панели задач чтобы обратно вернутся уже на второй странице выдаёт ошибку (выше написанная) как это исправить ? Буду очень благодарен

первый файл

from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5 import QtGui
import window_1
import sys


class MyMainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)

        # settings
        self.setFixedSize(640, 520)
        self.setWindowTitle(" B U G ")
        self.setWindowIcon(QtGui.QIcon("bug.ico"))

        # делаем сборку
        self.create_page()
        self.create_menuBar()
        self.create_toolBar()

    def create_page(self):

        self.widget_page = QtWidgets.QWidget()

        # создание обьектов
        self.button_1 = QtWidgets.QPushButton("Перейти к поиску телефонных\nномеров и электронных почт")
        self.button_exit = QtWidgets.QPushButton("Закрыть")

        self.formbox = QtWidgets.QGridLayout()

        # добавление в box и в окно
        self.formbox.addWidget(self.button_1)
        self.formbox.addWidget(self.button_exit)

        self.formbox.setSpacing(13)

        self.widget_page.setLayout(self.formbox)

        # датчики и события
        self.button_1.clicked.connect(self.clicked_button_1)
        self.button_exit.clicked.connect(app.quit)

        # сделать главным комонентом в общем
        self.setCentralWidget(self.widget_page)

    def create_menuBar(self):

        # создание панели-меню и строки состоянии
        self.menu = QtWidgets.QMenuBar()
        self.status_1 = QtWidgets.QStatusBar()
        self.setStatusBar(self.status_1)
        self.status_1.showMessage("Добро пожаловать!", msecs = 5000)

        # создание категорий и функционал в ней
        self.sub_menu_file = QtWidgets.QMenu("Файл")
        self.sub_menu_options = QtWidgets.QMenu("Опции")
        self.sub_menu_view = QtWidgets.QMenu('Вид')
        self.sub_menu_help = QtWidgets.QMenu("Справка")

        self.sub_menu_in_options_settings_1 = QtWidgets.QMenu("Настройки")
        self.sub_menu_options_search = QtWidgets.QMenu("Настройки поиска")
        self.sub_menu_in_options_settings_3 = QtWidgets.QMenu("Настройки генерации")

        # настройки строки состояния
        self.options_settings_status = QtWidgets.QAction("Включить панель состояния")
        self.options_settings_status.setCheckable(True)
        self.options_settings_status.setChecked(True)

        self.sub_menu_in_options_settings_1.addAction(self.options_settings_status)
        self.sub_menu_options.addMenu(self.sub_menu_in_options_settings_1)

        # добавляем отдельное меню в главное меню
        self.menu.addMenu(self.sub_menu_file)
        self.menu.addMenu(self.sub_menu_options)
        self.menu.addMenu(self.sub_menu_view)
        self.menu.addMenu(self.sub_menu_help)

        # датчики
        self.options_settings_status.triggered.connect(self.toggleMenu)

        # добавляем в окно
        self.setMenuBar(self.menu)

    def create_toolBar(self):

        self.toolBar = QtWidgets.QToolBar("Панель инструментов")

        self.toolbutton_1 = QtWidgets.QAction("Назад")
        self.toolbutton_1.setEnabled(False)

        self.toolBar.addAction(self.toolbutton_1)

        self.toolbutton_1.triggered.connect(self.clicked_toolbuuton_1)

        # добавляем панель в окно
        self.addToolBar(self.toolBar)


    # функции для датчиков
    def toggleMenu(self, state):

        if state:
            self.statusBar().show()
        else:
            self.statusBar().hide()

    def clicked_button_1(self): 
        self.window_1 = window_1.Page_find_numbers()
        self.setCentralWidget(self.window_1)

        # делаем кнопку на панели активной
        self.toolbutton_1.setEnabled(True)

    def clicked_toolbuuton_1(self):
        self.setCentralWidget(self.widget_page)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MyMainWindow = MyMainWindow() 
    MyMainWindow.show()
    sys.exit(app.exec_())

второй файл

from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5 import QtGui
import re

class Page_find_numbers(QtWidgets.QWidget):

    def __init__(self, parent = None):

        QtWidgets.QWidget.__init__(self)

        # обьекты
        self.button_clear = QtWidgets.QPushButton("Очистить")    
        self.button_find = QtWidgets.QPushButton("Запустить")

        self.label_1 = QtWidgets.QLabel("Вставте сюда текст, в котором хотите\nнайти телефонные номера и электронные\nпочты.")
        self.label_2 = QtWidgets.QLabel("Результат:")
        self.label_3 = QtWidgets.QLabel("Документация о <a href = 'https://ru.wikipedia.org/wiki/Python' alink = '#d0fff7'>Python</a>")

        self.label_3.setOpenExternalLinks(True)

        self.textedit_1 = QtWidgets.QTextEdit()

        self.textedit_2 = QtWidgets.QTextEdit()
        self.textedit_2.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)

        self.gridbox = QtWidgets.QGridLayout()

        # добавление в box
        self.gridbox.addWidget(self.label_1,0 , 0)
        self.gridbox.addWidget(self.textedit_1, 1, 0)
        self.gridbox.addWidget(self.label_2,2 , 0)
        self.gridbox.addWidget(self.textedit_2, 3, 0)
        self.gridbox.addWidget(self.label_3, 3 ,1)

        self.gridbox.addWidget(self.button_find, 0 ,1)
        self.gridbox.addWidget(self.button_clear, 1, 1)

        self.gridbox.setVerticalSpacing(18)

        self.setLayout(self.gridbox)

        # датчики событий
        self.button_clear.clicked.connect(self.textedit_1.clear)
        self.button_clear.clicked.connect(self.textedit_2.clear)

        self.button_find.clicked.connect(self.to_seek_nomer_email)


    def to_seek_nomer_email(self):


        PlainText = self.textedit_1.toPlainText()

        if len(PlainText) > 0: 

            # шаблон для телефонных номеров
            inserted_text_1 = re.compile(r'\W?\D?\d\s?\d\d\d\D?\s?\d\d\d\s?-?\d\d\s?-?\d\d')
            # шаблон для акк и электронных почт
            email_akk = re.compile(r'[a-zA-Z0-9]{1,50}@[a-z]{2,6}\.[a-z]{2,4}')

            # собирает данные
            email_text = email_akk.findall(PlainText)
            telephon_text = inserted_text_1.findall(PlainText)

            # если в массиве оказались телефонные номера или акк и почты
            if len(email_text) > 0 or len(telephon_text) > 0:

                # проверка сразу на акк и телефонов
                if len(email_text) > 0 and len(telephon_text) > 0:
                    text_1 = str(telephon_text)
                    text_2 = str(email_text)
                    text = "Телефонные номера:\n" + text_1 + "\n" +"Электронные почты:\n" + text_2           

                    self.textedit_2.setText(text)

                # проверка есть ли телефонные номера
                elif len(telephon_text) > 0:
                    text = "Телефонные номера:\n" + str(telephon_text)

                    self.textedit_2.setText(text)

                # проверка есть ли акк или почта
                elif len(email_text) > 0:
                    text = "Электронные почты:\n" + str(email_text)

                    self.textedit_2.setText(text)

            # если в списке нет номеров
            elif len(email_text) == 0 and len(telephon_text) == 0:
                self.textedit_2.setText("Данных не обнаружено")

        elif len(PlainText) == 0:
            self.textedit_2.setText("Введите данные!")

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

Автор решения: S. Nick

Так не получится. Создайте кнопку "Назад" на второй странице. После создания экземпляра self.window_1 = window_1.Page_find_numbers(), привяжите событие нажатия этой кнопки к нужному вам слоту, в котором делайте что вам надо. Я отметил строки, в которые внес изменения, так - # +++

main.py

import sys
from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5 import QtGui
import window_1


class MyMainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)

        # settings
        self.setFixedSize(640, 520)
        self.setWindowTitle(" B U G ")
        self.setWindowIcon(QtGui.QIcon("bug.ico"))

        # делаем сборку
        self.create_page()
        self.create_menuBar()
        self.create_toolBar()

    def create_page(self):
        self.widget_page = QtWidgets.QWidget()

        # создание обьектов
        self.button_1 = QtWidgets.QPushButton("Перейти к поиску телефонных\nномеров и электронных почт")
        self.button_exit = QtWidgets.QPushButton("Закрыть")

        self.formbox = QtWidgets.QGridLayout()
        # добавление в box и в окно
        self.formbox.addWidget(self.button_1)
        self.formbox.addWidget(self.button_exit)
        self.formbox.setSpacing(13)
        self.widget_page.setLayout(self.formbox)

        # датчики и события
        self.button_1.clicked.connect(self.clicked_button_1)
        self.button_exit.clicked.connect(app.quit)

        # сделать главным комонентом в общем
        self.setCentralWidget(self.widget_page)

    def create_menuBar(self):
        # создание панели-меню и строки состоянии
        self.menu = QtWidgets.QMenuBar()
        self.status_1 = QtWidgets.QStatusBar()
        self.setStatusBar(self.status_1)
        self.status_1.showMessage("Добро пожаловать!", msecs = 5000)

        # создание категорий и функционал в ней
        self.sub_menu_file = QtWidgets.QMenu("Файл")
        self.sub_menu_options = QtWidgets.QMenu("Опции")
        self.sub_menu_view = QtWidgets.QMenu('Вид')
        self.sub_menu_help = QtWidgets.QMenu("Справка")

        self.sub_menu_in_options_settings_1 = QtWidgets.QMenu("Настройки")
        self.sub_menu_options_search = QtWidgets.QMenu("Настройки поиска")
        self.sub_menu_in_options_settings_3 = QtWidgets.QMenu("Настройки генерации")

        # настройки строки состояния
        self.options_settings_status = QtWidgets.QAction("Включить панель состояния")
        self.options_settings_status.setCheckable(True)
        self.options_settings_status.setChecked(True)

        self.sub_menu_in_options_settings_1.addAction(self.options_settings_status)
        self.sub_menu_options.addMenu(self.sub_menu_in_options_settings_1)

        # добавляем отдельное меню в главное меню
        self.menu.addMenu(self.sub_menu_file)
        self.menu.addMenu(self.sub_menu_options)
        self.menu.addMenu(self.sub_menu_view)
        self.menu.addMenu(self.sub_menu_help)

        # датчики
        self.options_settings_status.triggered.connect(self.toggleMenu)

        # добавляем в окно
        self.setMenuBar(self.menu)

    def create_toolBar(self):
        self.toolBar = QtWidgets.QToolBar("Панель инструментов")
        self.toolbutton_1 = QtWidgets.QAction("Назад")
        self.toolbutton_1.setEnabled(False)

        self.toolBar.addAction(self.toolbutton_1)

#?        self.toolbutton_1.triggered.connect(self.clicked_toolbuuton_1)

        # добавляем панель в окно
        self.addToolBar(self.toolBar)

    # функции для датчиков
    def toggleMenu(self, state):
        if state:
            self.statusBar().show()
        else:
            self.statusBar().hide()

    def clicked_button_1(self): 
        self.window_1 = window_1.Page_find_numbers()
        self.window_1.button_back.clicked.connect(self.clicked_toolbuuton_1)        # +++
#        self.setCentralWidget(self.window_1)
        self.window_1.show()                                                        # +++
        self.hide()                                                                 # +++

        # делаем кнопку на панели активной
        self.toolbutton_1.setEnabled(True)

    def clicked_toolbuuton_1(self):
#        self.setCentralWidget(self.widget_page)
        self.show()                                                                 # +++
        self.window_1.hide()                                                        # +++


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MyMainWindow = MyMainWindow() 
    MyMainWindow.show()
    sys.exit(app.exec_())

window_1.py

from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5 import QtGui
import re

class Page_find_numbers(QtWidgets.QWidget):
    def __init__(self, parent = None):
        QtWidgets.QWidget.__init__(self)
        self.resize(640, 520)

        # обьекты
        self.button_back = QtWidgets.QPushButton("Назад")                              # +++

        self.button_clear = QtWidgets.QPushButton("Очистить")    
        self.button_find = QtWidgets.QPushButton("Запустить")

        self.label_1 = QtWidgets.QLabel("Вставте сюда текст, в котором хотите\nнайти телефонные номера и электронные\nпочты.")
        self.label_2 = QtWidgets.QLabel("Результат:")
        self.label_3 = QtWidgets.QLabel("Документация о <a href = 'https://ru.wikipedia.org/wiki/Python' alink = '#d0fff7'>Python</a>")

        self.label_3.setOpenExternalLinks(True)

        self.textedit_1 = QtWidgets.QTextEdit()

        self.textedit_2 = QtWidgets.QTextEdit()
        self.textedit_2.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)

        self.gridbox = QtWidgets.QGridLayout()

        # добавление в box  button_back

        self.gridbox.addWidget(self.button_back, 0, 0, alignment=QtCore.Qt.AlignLeft)     # +++ 

        self.gridbox.addWidget(self.label_1,     1, 0)
        self.gridbox.addWidget(self.button_find, 1, 1)
        self.gridbox.addWidget(self.textedit_1,  2, 0)
        self.gridbox.addWidget(self.button_clear,2, 1)
        self.gridbox.addWidget(self.label_2,     3, 0)
        self.gridbox.addWidget(self.textedit_2,  4, 0)
        self.gridbox.addWidget(self.label_3,     4 ,1)

#        self.gridbox.addWidget(self.button_find, 0 ,1)
#        self.gridbox.addWidget(self.button_clear, 1, 1)

        self.gridbox.setVerticalSpacing(18)

        self.setLayout(self.gridbox)

        # датчики событий
        self.button_clear.clicked.connect(self.textedit_1.clear)
        self.button_clear.clicked.connect(self.textedit_2.clear)

        self.button_find.clicked.connect(self.to_seek_nomer_email)


    def to_seek_nomer_email(self):


        PlainText = self.textedit_1.toPlainText()

        if len(PlainText) > 0: 

            # шаблон для телефонных номеров
            inserted_text_1 = re.compile(r'\W?\D?\d\s?\d\d\d\D?\s?\d\d\d\s?-?\d\d\s?-?\d\d')
            # шаблон для акк и электронных почт
            email_akk = re.compile(r'[a-zA-Z0-9]{1,50}@[a-z]{2,6}\.[a-z]{2,4}')

            # собирает данные
            email_text = email_akk.findall(PlainText)
            telephon_text = inserted_text_1.findall(PlainText)

            # если в массиве оказались телефонные номера или акк и почты
            if len(email_text) > 0 or len(telephon_text) > 0:

                # проверка сразу на акк и телефонов
                if len(email_text) > 0 and len(telephon_text) > 0:
                    text_1 = str(telephon_text)
                    text_2 = str(email_text)
                    text = "Телефонные номера:\n" + text_1 + "\n" +"Электронные почты:\n" + text_2           

                    self.textedit_2.setText(text)

                # проверка есть ли телефонные номера
                elif len(telephon_text) > 0:
                    text = "Телефонные номера:\n" + str(telephon_text)

                    self.textedit_2.setText(text)

                # проверка есть ли акк или почта
                elif len(email_text) > 0:
                    text = "Электронные почты:\n" + str(email_text)

                    self.textedit_2.setText(text)

            # если в списке нет номеров
            elif len(email_text) == 0 and len(telephon_text) == 0:
                self.textedit_2.setText("Данных не обнаружено")

        elif len(PlainText) == 0:
            self.textedit_2.setText("Введите данные!")

введите сюда описание изображения


Update

Если хотите чтобы данные, которые набирались во втором окне - сохранялись при следующем входе, перенесите self.window_1 = window_1.Page_find_numbers() # +++ <<< в конструктор класса MyMainWindow.

main.py

import sys
from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5 import QtGui
import window_1


class MyMainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)

        # settings
        self.setFixedSize(640, 520)
        self.setWindowTitle(" B U G ")
        self.setWindowIcon(QtGui.QIcon("bug.ico"))

        # делаем сборку
        self.create_page()
        self.create_menuBar()
        self.create_toolBar()

        self.window_1 = window_1.Page_find_numbers()                           # +++ <<<

    def create_page(self):
        self.widget_page = QtWidgets.QWidget()

        # создание обьектов
        self.button_1 = QtWidgets.QPushButton("Перейти к поиску телефонных\nномеров и электронных почт")
        self.button_exit = QtWidgets.QPushButton("Закрыть")

        self.formbox = QtWidgets.QGridLayout()
        # добавление в box и в окно
        self.formbox.addWidget(self.button_1)
        self.formbox.addWidget(self.button_exit)
        self.formbox.setSpacing(13)
        self.widget_page.setLayout(self.formbox)

        # датчики и события
        self.button_1.clicked.connect(self.clicked_button_1)
        self.button_exit.clicked.connect(app.quit)

        # сделать главным комонентом в общем
        self.setCentralWidget(self.widget_page)

    def create_menuBar(self):
        # создание панели-меню и строки состоянии
        self.menu = QtWidgets.QMenuBar()
        self.status_1 = QtWidgets.QStatusBar()
        self.setStatusBar(self.status_1)
        self.status_1.showMessage("Добро пожаловать!", msecs = 5000)

        # создание категорий и функционал в ней
        self.sub_menu_file = QtWidgets.QMenu("Файл")
        self.sub_menu_options = QtWidgets.QMenu("Опции")
        self.sub_menu_view = QtWidgets.QMenu('Вид')
        self.sub_menu_help = QtWidgets.QMenu("Справка")

        self.sub_menu_in_options_settings_1 = QtWidgets.QMenu("Настройки")
        self.sub_menu_options_search = QtWidgets.QMenu("Настройки поиска")
        self.sub_menu_in_options_settings_3 = QtWidgets.QMenu("Настройки генерации")

        # настройки строки состояния
        self.options_settings_status = QtWidgets.QAction("Включить панель состояния")
        self.options_settings_status.setCheckable(True)
        self.options_settings_status.setChecked(True)

        self.sub_menu_in_options_settings_1.addAction(self.options_settings_status)
        self.sub_menu_options.addMenu(self.sub_menu_in_options_settings_1)

        # добавляем отдельное меню в главное меню
        self.menu.addMenu(self.sub_menu_file)
        self.menu.addMenu(self.sub_menu_options)
        self.menu.addMenu(self.sub_menu_view)
        self.menu.addMenu(self.sub_menu_help)

        # датчики
        self.options_settings_status.triggered.connect(self.toggleMenu)

        # добавляем в окно
        self.setMenuBar(self.menu)

    def create_toolBar(self):
        self.toolBar = QtWidgets.QToolBar("Панель инструментов")
        self.toolbutton_1 = QtWidgets.QAction("Назад")
        self.toolbutton_1.setEnabled(False)

        self.toolBar.addAction(self.toolbutton_1)

#?        self.toolbutton_1.triggered.connect(self.clicked_toolbuuton_1)

        # добавляем панель в окно
        self.addToolBar(self.toolBar)

    # функции для датчиков
    def toggleMenu(self, state):
        if state:
            self.statusBar().show()
        else:
            self.statusBar().hide()

    def clicked_button_1(self): 
# >>>        self.window_1 = window_1.Page_find_numbers()                           # >>>
        self.window_1.button_back.clicked.connect(self.clicked_toolbuuton_1)        # +++
#        self.setCentralWidget(self.window_1)
        self.window_1.show()                                                        # +++
        self.hide()                                                                 # +++

        # делаем кнопку на панели активной
        self.toolbutton_1.setEnabled(True)

    def clicked_toolbuuton_1(self):
#        self.setCentralWidget(self.widget_page)
        self.show()                                                                 # +++
        self.window_1.hide()                                                        # +++


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MyMainWindow = MyMainWindow() 
    MyMainWindow.show()
    sys.exit(app.exec_())

введите сюда описание изображения


Update 2

Попробуйте так:

import sys
from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5 import QtGui
import window_1


class MyMainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)

        self.centralWidget = QtWidgets.QWidget()                                # +++
        self.setCentralWidget(self.centralWidget)                               # +++
        self.mainLayout = QtWidgets.QVBoxLayout(self.centralWidget)             # +++

        # settings
        self.setFixedSize(640, 520)
        self.setWindowTitle(" B U G ")
        self.setWindowIcon(QtGui.QIcon("bug.ico"))

        # делаем сборку
        self.widget_main = self.create_page()                                   # +++
        self.create_menuBar()
        self.create_toolBar()
        self.mainLayout.addWidget(self.widget_main)                             # +++

    def create_page(self):
        self.widget_page = QtWidgets.QWidget()

        # создание обьектов
        self.button_1 = QtWidgets.QPushButton("Перейти к поиску телефонных\nномеров и электронных почт")
        self.button_exit = QtWidgets.QPushButton("Закрыть")

        self.formbox = QtWidgets.QGridLayout()
        # добавление в box и в окно
        self.formbox.addWidget(self.button_1)
        self.formbox.addWidget(self.button_exit)
        self.formbox.setSpacing(13)
        self.widget_page.setLayout(self.formbox)

        # датчики и события
        self.button_1.clicked.connect(self.clicked_button_1)
        self.button_exit.clicked.connect(app.quit)

        # сделать главным комонентом в общем
#        self.setCentralWidget(self.widget_page)
        return self.widget_page                                                    # +++

    def create_menuBar(self):
        # создание панели-меню и строки состоянии
        self.menu = QtWidgets.QMenuBar()
        self.status_1 = QtWidgets.QStatusBar()
        self.setStatusBar(self.status_1)
        self.status_1.showMessage("Добро пожаловать!", msecs = 5000)

        # создание категорий и функционал в ней
        self.sub_menu_file = QtWidgets.QMenu("Файл")
        self.sub_menu_options = QtWidgets.QMenu("Опции")
        self.sub_menu_view = QtWidgets.QMenu('Вид')
        self.sub_menu_help = QtWidgets.QMenu("Справка")

        self.sub_menu_in_options_settings_1 = QtWidgets.QMenu("Настройки")
        self.sub_menu_options_search = QtWidgets.QMenu("Настройки поиска")
        self.sub_menu_in_options_settings_3 = QtWidgets.QMenu("Настройки генерации")

        # настройки строки состояния
        self.options_settings_status = QtWidgets.QAction("Включить панель состояния")
        self.options_settings_status.setCheckable(True)
        self.options_settings_status.setChecked(True)

        self.sub_menu_in_options_settings_1.addAction(self.options_settings_status)
        self.sub_menu_options.addMenu(self.sub_menu_in_options_settings_1)

        # добавляем отдельное меню в главное меню
        self.menu.addMenu(self.sub_menu_file)
        self.menu.addMenu(self.sub_menu_options)
        self.menu.addMenu(self.sub_menu_view)
        self.menu.addMenu(self.sub_menu_help)

        # датчики
        self.options_settings_status.triggered.connect(self.toggleMenu)

        # добавляем в окно
        self.setMenuBar(self.menu)

    def create_toolBar(self):
        self.toolBar = QtWidgets.QToolBar("Панель инструментов")
        self.toolbutton_1 = QtWidgets.QAction("Назад")
        self.toolbutton_1.setEnabled(False)

        self.toolBar.addAction(self.toolbutton_1)
#?        self.toolbutton_1.triggered.connect(self.clicked_toolbuuton_1)
        # добавляем панель в окно
        self.addToolBar(self.toolBar)

    # функции для датчиков
    def toggleMenu(self, state):
        if state:
            self.statusBar().show()
        else:
            self.statusBar().hide()

# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    def clicked_button_1(self): 
        w = self.centralWidget.layout().itemAt(0).widget()
        self.centralWidget.layout().removeWidget(w)     
        w.hide()
        self.window_1 = window_1.Page_find_numbers()                           
        self.window_1.button_back.clicked.connect(self.clicked_toolbuuton_1)          
        self.mainLayout.addWidget(self.window_1)
        # делаем кнопку на панели активной
        self.toolbutton_1.setEnabled(True)

    def clicked_toolbuuton_1(self):
        w = self.centralWidget.layout().itemAt(0).widget()
        self.centralWidget.layout().removeWidget(w)     
        w.hide()
        self.widget_main = self.create_page()
        self.mainLayout.addWidget(self.widget_main)
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MyMainWindow = MyMainWindow() 
    MyMainWindow.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка