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

Reply via email to