Python:PyQt5表与SQL-postgree

Python:PyQt5表与SQL-postgree,python,pyqt,pyqt5,qsqldatabase,qsqlquerymodel,Python,Pyqt,Pyqt5,Qsqldatabase,Qsqlquerymodel,我正在用python编写代码,我需要用数据库选择填充一个表,并且每5分钟刷新一次,有人能帮我吗?我已经试过很多方法,但都不对 有什么建议吗 MainWindow > def createConnection(): connString = "host='*********' port='****' dbname='***' user='***' password='*******'" global db db = QSqlDatabase.addData

我正在用python编写代码,我需要用数据库选择填充一个表,并且每5分钟刷新一次,有人能帮我吗?我已经试过很多方法,但都不对

有什么建议吗

 MainWindow >
    def createConnection():
    connString = "host='*********' port='****' dbname='***' user='***' password='*******'"

    global db
    db = QSqlDatabase.addDatabase('QPSQL')
    db.setDatabaseName(connString)

    if db.open():
        print('connect to SQL Server successfully')
        return True
    else:
        print('connection failed')
        return False

def displayData(sqlStatement):
    print('processing query...')
    qry = QSqlQuery(db)
    qry.prepare(sqlStatement)
    qry.exec()

    model = QSqlQueryModel()
    model.setQuery(qry)

    view = QTableView()
    view.setModel(model)
    return view    


    if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()        
    ui.setupUi(MainWindow)
    MainWindow.showMaximized()       

    if createConnection():
        SQL_STATEMENT = "select prod_descricao,prun_preco from produnidade inner join produtos ON (prod_codigo = prun_prod_codigo) where prun_unid_codigo = '101' limit 20"
        dataView = displayData(SQL_STATEMENT)
        dataView.show()

    sys.exit(app.exec_())

您只需执行QTimer即可再次设置查询:

从PyQt5.QtCore导入QTimer
从PyQt5.QtWidgets导入QApplication、QTableView
从PyQt5.QtSql导入QSqlDatabase,QSqlQueryModel
def create_connection():
连接字符串=(
“主机='******'端口='******'数据库名='***'用户='***'密码='********'”
)
db=QSqlDatabase.addDatabase(“QPSQL”)
db.setDatabaseName(connString)
如果db.open():
打印(“成功连接到SQL Server”)
返回真值
打印(“连接失败”)
返回错误
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=QApplication(sys.argv)
如果没有,请创建_连接():
系统出口(-1)
model=QSqlQueryModel()
view=QTableView()
view.setModel(model)
def on_timeout():
SQL_STATEMENT=“选择prod_descripcao,prun_preco FROM produnidade internal JOIN produtos ON(prod_codigo=prun_prod_codigo),其中prun_unid_codigo='101'限制20”
model.setQuery(SQL_语句)
QTimer.singleShot(5*1000,on_超时)
关于_timeout()
sys.exit(app.exec_())
“第158行,in view.setModel()类型错误:setModel(self,qabstractemmodel):参数不足”正在代码中获取此错误。。。我有一个主窗口,表视图需要在其中