Home > Software engineering >  Updating/clearing the PyQt form using confirmation window
Updating/clearing the PyQt form using confirmation window

Time:11-08

I would like that by typing anything in LineEdit in the first window and by pressing 'Confirm clearing' button in the second window, the first window would be updated so that the LineEdit field is emptied and focused.

import sys

from PyQt6.QtWidgets import (
    QApplication, QWidget, QPushButton, QLabel, QLineEdit, QGridLayout
)


class Vw(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(1000, 400)
        self.setContentsMargins(30, 30, 30, 30)

        self.grid = QGridLayout(self)
        self.setLayout(self.grid)

        self.t1 = QLineEdit(self)
        self.grid.addWidget(self.t1, 0, 1)

        self.bOk = QPushButton("Clear the line edit", self)
        self.bOk.setFixedSize(120, 30)
        self.grid.addWidget(self.bOk, 5, 0)
        self.bOk.clicked.connect(self.implementing)
        self.bOk.setAutoDefault(True)

    def implementing(self):
        # to be added a code
        done()

    def clearing(self):
        self.t1.clear()
        self.t1.setFocus()


def done():
    Vw.wda = WdA()
    Vw.wda.show()


class WdA(QWidget):

    def __init__(self):
        super().__init__()
        self.resize(300, 50)
        self.setContentsMargins(0, 0, 0, 0)

        self.grid = QGridLayout(self)
        self.setLayout(self.grid)

        self.el1 = QLabel("About to clear!", self)
        self.grid.addWidget(self.el1, 0, 0)

        self.wOk = QPushButton("Confirm clearing", self)
        self.wOk.setFixedSize(120, 30)
        self.grid.addWidget(self.wOk, 1, 0)
        self.wOk.setFocus()
        self.wOk.clicked.connect(self.end_of_entry)
        self.wOk.setAutoDefault(True)

    def end_of_entry(self):
        self.close()
        # Vw.clearing()         # <--- This line needs to be implemented


def appl():
    app_ = QApplication(sys.argv)
    wnd = Vw()
    wnd.show()
    sys.exit(app_.exec())


if __name__ == '__main__':
    appl()

In other words, I would like 'clearing' method would trigger on clicking on 'wOk' button.

In other words, I would like 'clearing' method would trigger on clicking on 'wOk' button.

CodePudding user response:

As an option using enter image description here

enter image description here

  • Related