Python:PyQt5表与SQL-postgree
我正在用python编写代码,我需要用数据库选择填充一个表,并且每5分钟刷新一次,有人能帮我吗?我已经试过很多方法,但都不对 有什么建议吗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
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):参数不足”正在代码中获取此错误。。。我有一个主窗口,表视图需要在其中