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: