Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. (SOLVED)Qtimer Call Help

(SOLVED)Qtimer Call Help

Scheduled Pinned Locked Moved General and Desktop
4 Posts 2 Posters 1.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    techybri
    wrote on last edited by
    #1

    I am trying to make an app, using python and pyside, that will display the first 10 rows of data from a mysql db table to the screen and then display the next set of 10 rows 30 seconds later. I think I have all the coding done that I need to make the initial display happen properly, but it never refreshes with the new query. I am certain it is because I am calling the method incorrectly or putting the timer call in the wrong spot or even opening and executing the app incorrectly, but I cant seem to get it right. Brand new to Python and programming in general. Any help is greatly appreciated. Heres what I have so far:

    @from PySide import QtGui, QtSql, QtCore
    import sys

    class myDisplay:
    def connectDB(self):
    self.db=QtSql.QSqlDatabase.addDatabase("QMYSQL")
    self.db.setHostName("localhost")
    self.db.setDatabaseName("db")
    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("app")

    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):
    self.timer=QtCore.QTimer()
    self.timer.setInterval(milliseconds)
    self.timer.start()
    self.timer.timeout,connect(self.app.close())

    x=myDisplay()
    x.connectDB()
    x.makeModel("table")
    x.createQuery("SELECT field1, field2, field3, field4 FROM table ORDER BY field 4 DESC LIMIT 10")
    x.setHeaders("Field 1", "Field 2", "Field 3", "Field 4")
    x.makeApp("app")
    x.makeForm()
    x.run()
    x.timer(30000)

    y=myDisplay()
    y.connectDB()
    y.makeModel("table")
    y.createQuery("SELECT field1, field2, field3, field4, field5 FROM table ORDER BY field4 DESC LIMIT 10,10")
    y.setHeaders("Field 1", "Field 2", "Field 3", "Field 4", "Field 5")
    y.makeApp("app")
    y.makeForm()
    y.run()
    y.timer(30000)

    next set would go here, etc

    @

    1 Reply Last reply
    0
    • T Offline
      T Offline
      techybri
      wrote on last edited by
      #2

      I'm pretty sure this is similar to the question rotpar asked that sgaist seemed to have an answer for. But, I am still unable to decipher from that conversation quite where in my code that timer might go. Any ideas?

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #3

        Hi,

        You are starting your timer after calling run which starts the event loop and exits the program when done thus it's never started in the first place.

        Hope it helps

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        0
        • T Offline
          T Offline
          techybri
          wrote on last edited by
          #4

          Absolutely helped. Now its working just as I wanted it to. Shows how much of a noob I am, but I could sit and watch the screens toggle back and forth from one query to the next for hours! Feels like a real achievement. HA!

          Anyway, thanks a lot.

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved