Would anyone explain what do I do wrong? I use PyQt4 on Win8. The following 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 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 work fine.
But when I execute
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())
It shows errors:
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 query are correct for I tested them in iPython. But Why can't I execute the second query in PyQT4??
Update: Change the last line to
self.treeWidget.addTopLevelItem(QTreeWidgetItem(map(unicode,row)))
solve that problem! Thanks to Gary Lee.