我在主窗口中创建了一个QtableView。它通过Model
显示一个Tableclass MitarbeiterWindow(QMainWindow, Ui_MitarbeiterWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
#Menüleisten funktionen
self.actionLogout.triggered.connect(self.Logout)
self.actionClose.triggered.connect(self.beendenfunktion)
self.actionMitarbeiter.triggered.connect(self.mitarbeiteroeffnen)
self.actionAirline.triggered.connect(self.airlinesoeffnen)
self.actionAbteilungen.triggered.connect(self.abteilungenoeffnen)
self.actionInfo.triggered.connect(self.hilfeanzeigen)
#Buttonfunktionen
self.btn_add.clicked.connect(self.mitarbeiterhinzufuegen)
db.open()
self.db_abfrage()
def db_abfrage(self):
self.mod_mitarbeiter = QtSql.QSqlRelationalTableModel()
self.mod_mitarbeiter.setTable("mitarbeiter")
self.mod_mitarbeiter.setRelation(2,QtSql.QSqlRelation("abteilungen","Abteilungsid", "Abteilung"))
self.tbl_mitarbeiter.setItemDelegate(QtSql.QSqlRelationalDelegate())
self.mod_mitarbeiter.select()
self.tbl_mitarbeiter.setModel(self.mod_mitarbeiter)
def Logout(self):
print("-----Es wird ausgeloggt-----")
mitarbeiterwindow.close()
mainwindow.close()
loginwindow.show()
def mitarbeiterhinzufuegen(self):
print("-----/////Mitarbeiter hinzufügen-----")
mitarbeiteraddwindow.show()
mitarbeiterwindow.close()
当我添加一个新的条目到SQL数据库,它显示它自己只有在重新打开整个应用程序。
是否有一种方法来更新模型,以便在重新打开窗口之前刷新它?
是否有办法在保存新表项后用新表项刷新表项?
我做了一个简短的解决方案,添加了一个按钮[刷新]下面的代码
class MitarbeiterWindow(QMainWindow, Ui_MitarbeiterWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
#Menüleisten funktionen
self.actionLogout.triggered.connect(self.Logout)
self.actionClose.triggered.connect(self.beendenfunktion)
self.actionMitarbeiter.triggered.connect(self.mitarbeiteroeffnen)
self.actionAirline.triggered.connect(self.airlinesoeffnen)
self.actionAbteilungen.triggered.connect(self.abteilungenoeffnen)
self.actionInfo.triggered.connect(self.hilfeanzeigen)
#Buttonfunktionen
self.btn_add.clicked.connect(self.mitarbeiterhinzufuegen)
self.db_abfrage()
self.btn_delete.clicked.connect(self.db_refresh)
def db_abfrage(self):
self.mod_mitarbeiter = QtSql.QSqlRelationalTableModel()
self.mod_mitarbeiter.setTable("mitarbeiter")
self.mod_mitarbeiter.setRelation(2,QtSql.QSqlRelation("abteilungen","Abteilungsid", "Abteilung"))
self.tbl_mitarbeiter.setItemDelegate(QtSql.QSqlRelationalDelegate())
self.db_refresh()
def db_refresh(self):
model = self.mod_mitarbeiter
abfrage = """UPDATE mitarbeiter """
query.exec(abfrage)
model.select()
self.tbl_mitarbeiter.setModel(model)
现在我必须弄清楚如何使它自动没有按钮