PyQt QTreeWidgetItem parameter has unexpected type 'tuple'

Can someone explain what I'm doing wrong? I am using PyQt4 on Win8. Below is my main code:

con = sqlite3.connect('storage.db')
with con:
    cur = con.cursor()
    cur.execute(script)
    rows = cur.fetchall()
    self.treeWidget.clear()
    for row in rows:
        self.treeWidget.addTopLevelItem(QTreeWidgetItem(row))

when i execute the script

script = "SELECT number,name FROM CB WHERE day > {0} AND day < {1} GROUP BY number  LIMIT {2}  ;".format(self.start_day, self.final_day,self.spinBox.value())

It works great.

But when I do

script = "SELECT number,name,SUM(access)/1000000.0 FROM CB WHERE day > {0} AND day < {1} GROUP BY number ,name  LIMIT {2} ;".format(self.start_day, self.final_day, self.spinBox.value())

Errors are displayed here:

Traceback (most recent call last):
  File "G:/CBAnalysis/CB_analysis.py", line 155, in quickaccess
    self.treeWidget.addTopLevelItem(QTreeWidgetItem(row))
TypeError: arguments did not match any overloaded call:
  QTreeWidgetItem(int type=QTreeWidgetItem.Type): argument 1 has unexpected type 'tuple'
  QTreeWidgetItem(QStringList, int type=QTreeWidgetItem.Type): argument 1 has unexpected type 'tuple'
  QTreeWidgetItem(QTreeWidget, int type=QTreeWidgetItem.Type): argument 1 has unexpected type 'tuple'
  QTreeWidgetItem(QTreeWidget, QStringList, int type=QTreeWidgetItem.Type): argument 1 has unexpected type 'tuple'
  QTreeWidgetItem(QTreeWidget, QTreeWidgetItem, int type=QTreeWidgetItem.Type): argument 1 has unexpected type 'tuple'
  QTreeWidgetItem(QTreeWidgetItem, int type=QTreeWidgetItem.Type): argument 1 has unexpected type 'tuple'
  QTreeWidgetItem(QTreeWidgetItem, QStringList, int type=QTreeWidgetItem.Type): argument 1 has unexpected type 'tuple'
  QTreeWidgetItem(QTreeWidgetItem, QTreeWidgetItem, int type=QTreeWidgetItem.Type): argument 1 has unexpected type 'tuple'
  QTreeWidgetItem(QTreeWidgetItem): argument 1 has unexpected type 'tuple'

I am sure that both queries are correct in order to test them in iPython. But why can't I execute the second query in PyQT4 ??


Refresh . Change the last line to self.treeWidget.addTopLevelItem(QTreeWidgetItem(map(unicode,row)))solve this problem! Thanks to Gary Lee.

+4
source share

Source: https://habr.com/ru/post/1525899/


All Articles