PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verwenden von psycopg2 und Qthreads zusammen (oder nur postgresql und qthreads) und Aktualisieren der GUI

Sie schließen die Datenbankverbindung, bevor die Hauptschleife von Qt gestartet wird, und verschieben alle Postgres-bezogenen Inhalte in den Thread.

class ThreadClass(QtCore.QThread):
    updateTable = pyqtSignal(dict)

    def __init__(self, parent=None):
        super().__init__()

    def run(self):
        conn = psycopg2.connect("dbname=motocompano_dev user=pg_admin password=pGsql_#--w3N_a0X!s7J-o1U+ host=localhost port=5555")

        cur = conn.cursor()        
        cur.execute("select * from events")
        orderbook = cur.fetchall()

        for rowNum, rowData in enumerate(orderbook):
            self.updateTable.emit({"insertRow": 0})
            for colNum, data in enumerate(rowData):
                self.updateTable.emit({"setItem": [rowNum, colNum, data]})

        cur.close()
        conn.close()