Just getting into programming in general. Loving python so far. I am working on an application that will display database information on screen. The idea is that some rows of database information will appear on screen for 30 seconds, and then the next rows will appear. I think I have made some pretty good headway getting the database connected and even displaying data, but I am having a hell of a time getting the data to refresh to a new query after 30 seconds. I feel like I must just be calling the qtimer at the wrong point in the program. Or, perhaps I should be using a "while" loop of some kind. Anyway, here is my code. Any help would be sooo appreciated.
Thanks, Brian
from PyQt4 import QtGui, QtSql, QtCore import sys class myDisplay: def connectDB(self): self.db=QtSql.QSqlDatabase.addDatabase("QMYSQL") self.db.setHostName("localhost") self.db.setDatabaseName("myDB") self.db.setUserName("user") self.db.setPassword("pw") def makeModel(self, table): self.model=QtSql.QSqlTableModel() self.model.setTable("'" + table + "'") self.model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit) def createQuery(self, query1): self.query=QtSql.QSqlQuery(query1) self.model.setQuery(self.query) def setHeaders(self, *params): self.model.setHeaderData(0, QtCore.Qt.Horizontal, params[0]) self.model.setHeaderData(1, QtCore.Qt.Horizontal, params[1]) self.model.setHeaderData(2, QtCore.Qt.Horizontal, params[2]) self.model.setHeaderData(3, QtCore.Qt.Horizontal, params[3]) self.model.setHeaderData(4, QtCore.Qt.Horizontal, params[4]) self.model.setHeaderData(5, QtCore.Qt.Horizontal, params[5]) self.model.setHeaderData(6, QtCore.Qt.Horizontal, params[6]) self.model.setHeaderData(7, QtCore.Qt.Horizontal, params[7]) self.model.setHeaderData(8, QtCore.Qt.Horizontal, params[8]) self.model.setHeaderData(9, QtCore.Qt.Horizontal, params[9]) self.model.setHeaderData(10, QtCore.Qt.Horizontal, params[10]) if params[11] in locals(): self.model.setHeaderData(11, QtCore.Qt.Horizontal, params[11]) else: return "no11" if params[12] in locals(): self.model.setHeaderData(12, QtCore.Qt.Horizontal, params[12]) else: return "no12" if params[13] in locals(): self.model.setHeaderData(13, QtCore.Qt.Horizontal, params[13]) else: return "no13" if params[14] in locals(): self.model.setHeaderData(14, QtCore.Qt.Horizontal, params[14]) else: return "no14" if params[15] in locals(): self.model.setHeaderData(15, QtCore.Qt.Horizontal, params[15]) else: return "no15" def makeApp(self, appName): self.app = QtGui.QApplication(sys.argv) self.app.setApplicationName(appName) def makeForm(self): self.form = QtGui.QTableView() self.form.setModel(self.model) self.font = QtGui.QFont("Arial", 24, QtGui.QFont.Bold) self.form.setFont(self.font) self.form.resizeColumnsToContents() self.form.resizeRowsToContents() self.form.verticalHeader().setVisible(False) self.form.setObjectName("form") self.form.setAlternatingRowColors(True) self.form.showFullScreen() def run(self): self.form.show() sys.exit(self.app.exec_()) def timer(self, milliseconds, newQuery): self.timer=QtCore.QTimer() self.timer.setInterval(milliseconds) self.timer.start() self.timer.timeout.connect(self.createQuery(newQuery)) x=myDisplay() x.connectDB() x.makeModel("table") x.createQuery("SELECT field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field13 FROM table ORDER BY field1 DESC LIMIT 20") x.setHeaders("field1", "field2","field3", "field4", "Field5", "Field6", "Field7", "Field8", "Field9", "Field10", "Field11", "Field13") x.makeApp("app") x.makeForm() x.run() x.timer(30000)
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt