Очистка страницы после выхода

Всем привет. Когда мы нажимаем на кнопку то мы переходим на следующую страницу и вводим данным, но когда мы выходим из неё и снова приходим то данные на полях они сохранятся. В меню есть действие и это действие отвечает за очистку страницу если оно установлено то очистка есть, а если нет то её не будет. Так вот как можно реализовать очистку страницу после её выхода, и при этом действие очистки оно установлено. Буду очень благодарен!

файл 1

from PyQt5.QtWidgets import QApplication
from PyQt5 import QtCore
from PyQt5 import QtGui
from PyQt5 import QtWidgets
import window_1
import sys
import os


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self);

        self.centralWidget = QtWidgets.QWidget() # создаём центральный виджет
        self.setCentralWidget(self.centralWidget)
        self.mainLayout = QtWidgets.QVBoxLayout(self.centralWidget)

        self.window_1 = window_1.Page_find_numbers(self)

        # settings
        self.setFixedSize(640, 620)
        self.setWindowTitle(" B U G ")

        # делаем сборку
        self.widget_main = self.createPage()
        self.mainLayout.addWidget(self.widget_main)
        self.createMenuBar()
        self.createToolBar()

        # вывод информации на строку состояния
        self.label_1 = QtWidgets.QLabel("v 1.0")
        self.label_1.setStyleSheet("font-size: 18px; color: black;")

        self.status_1.addPermanentWidget(self.label_1)
        self.status_1.showMessage("Добро пожаловать", msecs = 4000)

        self.setStatusBar(self.status_1)


    def createPage(self):

        self.widget_page = QtWidgets.QWidget()

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

        self.formbox = QtWidgets.QGridLayout()

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

        self.formbox.setSpacing(20)

        self.widget_page.setLayout(self.formbox)

        # датчики и события
        self.button_1.clicked.connect(self.clickedButton_1)

        # сделать главным комонентом в общем
        return self.widget_page  # возращает

    def createMenuBar(self):

        # создание панели-меню и строки состоянии
        self.menu = QtWidgets.QMenuBar()
        self.status_1 = QtWidgets.QStatusBar()

        # создание категорий меню и функционал в ней
        self.menu_options = QtWidgets.QMenu("Опции")
        self.menu_view = QtWidgets.QMenu('Вид')
        self.menu_help = QtWidgets.QMenu("Справка")

        # просто настройки
        self.sub_menu_options = QtWidgets.QMenu("Настройки")

        self.action_clear_page = QtWidgets.QAction("Очистка страницы после выхода")
        self.action_clear_page.setCheckable(True)

        self.sub_menu_options.addAction(self.action_clear_page)

        self.menu_options.addMenu(self.sub_menu_options)

        # настройки поиска
        self.sub_menu_options_search = QtWidgets.QMenu("Настройки поиска")

        self.action_search_options_1 = QtWidgets.QAction("Искать всё")
        self.action_search_options_1.setCheckable(True)
        self.action_search_options_1.setChecked(True)
        self.action_search_options_2 = QtWidgets.QAction("Телефонные номера")
        self.action_search_options_2.setCheckable(True)
        self.action_search_options_3 = QtWidgets.QAction("Электронные почты и акк") 
        self.action_search_options_3.setCheckable(True)

        self.group_action_1 = QtWidgets.QActionGroup(self.sub_menu_options_search)

        self.group_action_1.addAction(self.action_search_options_1) # добавление в groupbox
        self.group_action_1.addAction(self.action_search_options_2)
        self.group_action_1.addAction(self.action_search_options_3)

        self.sub_menu_options_search.addAction(self.action_search_options_1) # добавление в вложенное
        self.sub_menu_options_search.addAction(self.action_search_options_2) # меню
        self.sub_menu_options_search.addAction(self.action_search_options_3)

        self.menu_options.addMenu(self.sub_menu_options_search) # добавление в меню опции

        # добавляем отдельное меню в главное меню
        self.menu.addMenu(self.menu_options)
        self.menu.addMenu(self.menu_view)
        self.menu.addMenu(self.menu_help)

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


    def createToolBar(self):
        self.toolBar = QtWidgets.QToolBar()

        self.action_back = QtWidgets.QAction("Вернуться назад")
        self.toolBar.addAction(self.action_back)

        self.addToolBar(self.toolBar)

    # методы для датчиков
    def clickedButton_1(self):
        widget = self.centralWidget.layout().itemAt(0).widget()
        self.centralWidget.layout().removeWidget(widget)     
        widget.hide()                         
        self.window_1.show()    
        self.action_back.triggered.connect(self.clickedActionBack)
        self.mainLayout.addWidget(self.window_1)

    def clickedActionBack(self):
        widget = self.centralWidget.layout().itemAt(0).widget()
        self.centralWidget.layout().removeWidget(widget)     
        widget.hide()
        self.widget_main = self.createPage()
        self.mainLayout.addWidget(self.widget_main)

        # условие для очищений полей при выходе из страничек
        if self.action_clear_page.isChecked() == True:
            self.window_1.textedit_1.clear
            self.window_1.textedit_2.clear



if __name__ == '__main__':
    app = QApplication(sys.argv)    
    if os.name == 'nt':  # если виндовс
        import ctypes
        myappid = 'mycompany.myproduct.subproduct.version'
        ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
        app.setWindowIcon(QtGui.QIcon("settings\\bug.ico"))
    MainWindow = MainWindow() 
    MainWindow.show()
    sys.exit(app.exec_())

файл 2

from PyQt5 import QtCore
from PyQt5 import QtWidgets
import shutil
import os
import re


class Page_find_numbers(QtWidgets.QWidget):

    def __init__(self, parent = None):
        super().__init__(parent)
        self.parent = parent

        # списки для хранения найденных данных в тексте
        self.email_text = []
        self.telephon_text = []

        # обьекты
        self.button_clear = QtWidgets.QPushButton("Очистить")    
        self.button_find = QtWidgets.QPushButton("Запустить")
        self.button_save = QtWidgets.QPushButton("Сохранить\nв txt-файл")
        self.button_delete = QtWidgets.QPushButton("Удалить\nданные")

        self.label_1 = QtWidgets.QLabel("Вставте сюда текст, в котором хотите\nнайти телефонные номера и электронные\nпочты.")
        self.label_2 = QtWidgets.QLabel("Результат:")

        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.label_2, 2, 0)
        self.gridbox.addWidget(self.button_find, 0, 1)
        self.gridbox.addWidget(self.button_clear, 1, 1)
        self.gridbox.addWidget(self.button_save, 4, 1, alignment = QtCore.Qt.AlignTop)
        self.gridbox.addWidget(self.button_delete, 4, 1, alignment = QtCore.Qt.AlignBottom)
        self.gridbox.addWidget(self.textedit_1, 1, 0)
        self.gridbox.addWidget(self.textedit_2, 4, 0)

        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_clear.clicked.connect(self.email_text.clear)
        self.button_clear.clicked.connect(self.telephon_text.clear)

        self.button_find.clicked.connect(self.toSeekNomerEmail)
        self.button_save.clicked.connect(self.toSaveNomerEmail)
        self.button_delete.clicked.connect(self.toDeleteNomerEmail)


    def toSeekNomerEmail(self):

        PlainText = self.textedit_1.toPlainText()

        self.action_options_1 = self.parent.action_search_options_1
        self.action_options_2 = self.parent.action_search_options_2
        self.action_options_3 = self.parent.action_search_options_3

        self.status_1 = self.parent.status_1

        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}')

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

            text_1 = ''  # для телефонных номеов
            text_2 = ''  # для почт и аккаунтов

            # преобразовать в нормальные вид
            for nomer in self.telephon_text:
                text_1 += nomer + "\n"

            for email in self.email_text:
                text_2 += email + "\n"

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

                # проверка на установленный режим действия (поиска)
                # искать всё (действие)
                if self.action_options_1.isChecked() == True:

                    # проверка на то что будет выводится в тексте
                    # только телефонные номера
                    if len(text_1) > 0 and len(text_2) == 0:
                         self.textedit_2.setText("Телефонные номера:\n" + text_1)

                    # только почты
                    elif len(text_1) == 0 and len(text_2) > 0:
                        self.textedit_2.setText("Электронные почты:\n" + text_2)

                    # всё вместе
                    elif len(text_1) > 0 and len(text_2) > 0:
                            self.textedit_2.setText("Телефонные номера:\n" + text_1\
                                + "\nЭлектронные почты:\n" + text_2)

                    # панель состояние
                    self.status_1.showMessage("Телефонные номера - " + str(len(self.telephon_text))\
                    + "; Электронные почты - " + str(len(self.email_text)), msecs = 3500)

                # искать телефонные номера
                elif self.action_options_2.isChecked() == True:

                    # если данные есть
                    if len(text_1) > 0:
                        self.textedit_2.setText("Телефонные номера:\n" + text_1)


                    elif len(text_1) == 0:
                        self.textedit_2.setText("Данных не обнаружено!")


                    self.status_1.showMessage("Телефонные номера - " + str(len(self.telephon_text)), msecs = 3500)

                # искать аккаунты и почты
                elif self.action_options_3.isChecked() == True:

                    # если оказались данные
                    if len(text_2) > 0:
                        self.textedit_2.setText("Электронные почты:\n" + text_2)


                    elif len(text_2) == 0:
                        self.textedit_2.setText("Данных не обнаружено!")

                    self.status_1.showMessage("Найдено: электронные почты и акк - " + str(len(self.email_text)), msecs = 3500)

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


        # если в первом тексте не обнаруженно данных для поиска
        elif len(PlainText) == 0:
            self.textedit_2.setText("Введите данные!")


    def toSaveNomerEmail(self):

        if len(self.email_text) > 0 or len(self.telephon_text) > 0:

            # проверка на путь
            if os.path.exists("C:/nomera_email") == False:
                # созданте папки
                os.mkdir('C:/nomera_email')

            elif os.path.exists("C:/nomera_email") == True:  
                # проверка на установленность действия
                # поиск всего
                if self.action_options_1.isChecked() == True:
                    telephon_nomer_email = open('C:/nomera_email/Telephonnue_nomera_email.txt', 'a')

                    # записывается номера и акк, и почты
                    if len(self.telephon_text) > 0:  # проверка на номера
                        telephon_nomer_email.write("\nТелефонные номера:\n")

                        for tel_nomer in self.telephon_text:
                            telephon_nomer_email.write(tel_nomer + "\n")
                        telephon_nomer_email.write("")

                    if len(self.email_text) > 0:  # проверка на акк или почта

                        telephon_nomer_email.write("\nАккаунты, электронные почты:\n")

                        for email in self.email_text:
                            telephon_nomer_email.write(email + '\n')
                        telephon_nomer_email.write("")

                    telephon_nomer_email.close()

                # поиск телефонных номеров
                elif self.action_options_2.isChecked() == True:

                    # запись телефонный номеров
                    if len(self.telephon_text) > 0:
                        telephon_nomer = open('C:/nomera_email/Telephonnue_nomera.txt', 'a')

                        telephon_nomer.write("\nТелефонные номера:\n")

                        for tel_nomer in self.telephon_text:
                            telephon_nomer.write(tel_nomer + "\n")
                        telephon_nomer.write("")

                        telephon_nomer.close()

                # поиск почт и аккаунтов
                elif self.action_options_3.isChecked() == True:

                    # запись аккаунтов
                    if len(self.email_text) > 0:             
                        email_file = open('C:/nomera_email/Email.txt', 'a')

                        email_file.write("\nАккаунты, электронные почты:\n")

                        for email in self.email_text:
                            email_file.write(email + '\n')
                        email_file.write("")

                        email_file.close()

            # датчик для удаление данных из списков
            self.button_clear.clicked.connect(self.telephon_text.clear)
            self.button_clear.clicked.connect(self.email_text.clear)

            # вывод информации после сохранения
            self.textedit_2.setText("Вы сохранили в txt-файл,\nна путь - C:\\nomera_email")


        # если данных для сохранения не обнаружено
        elif len(self.email_text) == 0 and len(self.telephon_text) == 0:
            self.textedit_2.setText("Данных для сохранения в\ntxt-файл не обнаружено!")


    def toDeleteNomerEmail(self):

        language_russian = self.parent.language_russian
        language_english = self.parent.language_english

        if os.path.exists("C:\\nomera_email") == True:

            shutil.rmtree("C:\\nomera_email")

            self.textedit_2.setText("Все данные удалены!")

        elif os.path.exists("C:/nomera_email") == False:
            self.textedit_2.setText("Не обнаружено данных для удаления!")


# номера и акк для проверки поиска
# щоашгомошвамшто (+5 555) 555 55 55 апрарdfb 89209103333 
# ваииапп 342423 пиа 8 888 888 88-88 dfbdfg [email protected]

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

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

void QTextEdit::clear()

Удаляет весь текст в текстовом редакторе.

...
def clickedActionBack(self):
    widget = self.centralWidget.layout().itemAt(0).widget()
    self.centralWidget.layout().removeWidget(widget)     
    widget.hide()
    self.widget_main = self.createPage()
    self.mainLayout.addWidget(self.widget_main)

    # условие для очищений полей при выходе из страничек
    if self.action_clear_page.isChecked() == True:
        self.window_1.textedit_1.clear()                              # + ()
        self.window_1.textedit_2.clear()                              # + ()
    #                 --------------->^^
...
→ Ссылка