Je suis occupé avec un projet universitaire où je dois créer une base de données SQL et être capable de travailler avec les données via un programme créé en Python et PyQT.Impossible d'afficher les informations de MySQL dans l'application PyQT en utilisant QTableView
J'ai créé la base de données, ajouté des tables et des données dans les tables, mais maintenant je dois utiliser le widget QTableView
pour afficher les données et quand je l'exécute, je reçois une fenêtre vide.
J'ai remarqué que si je change des détails tels que nom d'utilisateur, mot de passe ou nom de base de données à quelque chose de aléatoire, je reçois toujours le même résultat qui me dit que la connexion à la base de données ne se produit pas. Est-ce que quelqu'un peut regarder mon code et aider? Même avec juste quelques conseils pour obtenir un message d'erreur?
from __future__ import division
import sys
from PyQt4 import QtCore, QtGui, QtSql
from showrec import*
def createConnection():
db=QtSql.QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('localhost')
db.setDatabaseName('database')
db.setUserName('username')
db.setPassword('password')
db.open()
print(db.lastError().text())
return True
class MyForm(QtGui.QDialog):
def _init_(self,parent=None):
QtGui.QWidget._init_(self,parent)
self.ui=Ui_Dialog()
self.ui.setp.Ui(self)
self.model=QtSQL.QSqlTableModel(self)
self.Model.SetTable("table1")
self.Model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
self.model.select()
self.ui.tableView.SetModel(self.model)
if __name__ == "__main__":
app=QtGui.QApplication(sys.argv)
if not createConnection():
sys.exit(1)
myapp=MyForm()
myapp.show()
sys.exit(app.exec_())`
'self.ui.tableView.SetModel (self.model)': N'est-ce pas 'setModel'? – JonBrave
l'objet 'db' que vous créez dans' createConnection' reste dans cette fonction, vous devrez peut-être retourner et l'assigner dans votre classe, ou faire de cette fonction une méthode de classe, et utiliser 'self.db = ...' – PRMoureu