关闭后尝试更新 QTableView child window Python PyQt6

Trying update QTableView after closing child window Python PyQt6

我需要在 parent window 关闭 child window 后使用 setModel 方法自动触发刷新 QTableView。 Child window 向 sqlite 数据库中插入数据。来自 child window:

的代码片段
class addClientWindow(QtWidgets.QWidget):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.initUI()
    def initUI(self):

    def addButtonHandle():
        query = QSqlQuery()
        query.exec("insert into clients values(NULL,'"+name.text()+"','"+surname.text()+"')")
        self.close()

代码片段parentwindow:

class ClientsWindow(QtWidgets.QWidget):
    def __init__(self):
        QtWidgets.QWidget.__init__(self, parent=None)
        self.initUI()

    def addClientHandle(self):
        self.window = addClientWindow()     
        self.window.show()

    def triggerTableUpdate(self):
        self.mainTable.setModel(self.setClientModel())

如果您想要 window 执行某些操作并在关闭后执行另一个操作,那么您必须使用 QDialog。另一方面,不要连接 SQL 查询,因为您的代码容易受到 SQL 注入攻击。

class addClientWindow(QtWidgets.QDialog):
    def __init__(self, parent=None):
        QDialog.QWidget.__init__(self, parent)
        self.initUI()

    def addButtonHandle(self):
        query = QSqlQuery()
        query.prepare("INSERT INTO clients VALUES(?, ?)")
        query.addBindValue(name.text())
        query.addBindValue(surname.text())
        self.close()
def addClientHandle(self):
    self.window = addClientWindow()     
    self.window.exec_()
    print("update table here")