PySide6 und SLQLite

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Benutzeravatar
wlfmario
User
Beiträge: 10
Registriert: Donnerstag 28. Juni 2018, 20:04
Wohnort: 192.168.0.1

Ich habe da mal wieder so ein Einsteigerproblem bei dem ich nicht weiter komme.

Ich habe mit PySide6 ein Formular erstellt mit einem TableView im den einfach nur Daten aus einer SQLite Datenbank angezeigt werden sollen.
Leider bekomme ich beim Aufruf der Datenbank folgenden Fehler:
qt.core.qobject.connect: QObject::connect(QObject, Unknown): invalid nullptr parameter
Hier mal mein Quellcode damit man nicht Raten muss. :lol:

Code: Alles auswählen

from PySide6.QtWidgets import QApplication, QMainWindow, QWidget
from PySide6 import QtSql
from frm_main import Ui_frm_main

class MainWindow(QMainWindow, Ui_frm_main):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        
        mod_ausgaben = QtSql.QSqlRelationalTableModel()
        mod_ausgaben.setTable("ausgaben")
        mod_ausgaben.select()
        self.tbv_uebersicht.setModel(mod_ausgaben)
        
if __name__ == "__main__":
   
    db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName("haushaltsbuch.db")
    
    app = QApplication()
    window = MainWindow()
    window.show()
    app.exec()
   
Evtl. kann mir jemand einen Tipp geben wo der Fehler liegt und was man evtl. verbessern kann.
Danke.
Benutzeravatar
Dennis89
User
Beiträge: 1108
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

vorweg, ich habe das noch nie benutzt, aber ich denke, dass du `db` an die Klasse übergeben musst, wenn du darin auf die Datenbank zugreifen willst.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
wlfmario
User
Beiträge: 10
Registriert: Donnerstag 28. Juni 2018, 20:04
Wohnort: 192.168.0.1

Kleines Update:

Es liegt nicht am Quelltext, es liegt komischerweise an Visual Studio Code.
Ich habe mir den Quelltext mal in PyCharm geladen und ausgeführt, da funktioniert alles wie es soll.

Jetzt verstehe ich nur nicht warum es nicht in VSC funktioniert ?
bb1898
User
Beiträge: 199
Registriert: Mittwoch 12. Juli 2006, 14:28

Ich nutze QtSql nur ganz selten und habe deshalb bei mir nur ein einziges annähernd passendes Beispiel gefunden. Darin wird die Datenbankverbindung nicht explizit an die Klasse übergeben - aber sie wird explizit geöffnet:

Code: Alles auswählen

ok = db.open()
if not ok:
	# Fehlerbehandlung nach Bedarf
Der open-Befehl scheint mir in Deinem Code zu fehlen. Und dazu könnte auch die Fehlermeldung durchaus passen.

Dass sich der Quelltext in PyCharm ausführen lässt, in Visual Studio Code aber nicht, muss nicht an einem Fehler in VSC liegen. Ich habe nicht die leiseste Ahnung, was PyCharm vielleicht von sich aus tut.
Auf jeden Fall würde ich Quelltext, der sich so verhält, ohne IDE ausführen und sehen, was dann passiert. Und zwar aus einer Eingabeaufforderung heraus, damit Fehlermeldungen auch angezeigt werden und stehen bleiben.
Antworten