PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Utiliser psycopg2 et Qthreads ensemble (ou simplement postgresql et qthreads) et mettre à jour l'interface graphique

Vous fermez la connexion à la base de données avant le démarrage de la boucle principale de Qt, déplacez tous les éléments liés à Postgres dans le 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()