Jurisdiction
Jurisdiction

Reputation: 47

Displaying rows from sqlite databse using QTableWidget in PyQt4

    with sqlite3.connect('database.db') as db:
        cursor=db.cursor()
        cursor.execute('select* from Item Order BY Name ASC')
        title = [cn[0] for cn in cursor.description]
        rows = [cn[0] for cn in cursor.description]
        cur=cursor.fetchall()


        layout = QtGui.QGridLayout() 
        self.test = QtGui.QLineEdit('test') #This is just a test for printing text into the table and works fine.

        self.table = QtGui.QTableWidget()

        for rows in cur:
            print(rows[1]) #This is just a test to see if the data could be printed into python shell, which worked.


            #self.test2 = QtGui.QLineEdit(cur)
            #self.table.setVerticalHeaderLabels(rows)

        self.table.setRowCount(3)
        self.table.setColumnCount(5)
        self.table.setHorizontalHeaderLabels(title) #This code works fine, the column headers are the ones from my database.
        #self.table.setVerticalHeaderItem(1,row)

        layout.addWidget(self.table, 0, 0)
        self.table.setItem(0, 0, QtGui.QTableWidgetItem(self.test.text()))
        #self.table.setItem(1, 0, QtGui.QTableWidgetItem(self.test2.text()))

        self.setLayout(layout)

Hashed out code are areas I played with but are causing errors, or just not working. I attached all of the code for the table to make it easier to understand what I am trying to accomplish.

This program currently opens a table with the column headers from the database, with 3 empty rows (excluding test). I would like the fill these rows automatically with the value from my sqlite database. If there is any information you need to know please ask.

Upvotes: 0

Views: 2172

Answers (1)

Alvaro Fuentes
Alvaro Fuentes

Reputation: 17455

You can do something like this:

    cur=cursor.fetchall()   
    for i,row in enumerate(cur):
        for j,val in enumerate(row):
            table.setItem(i, j, QtGui.QTableWidgetItem(str(val)))

Upvotes: 1

Related Questions