alteo_gange wrote:
Le mardi 23 octobre 2007, alteo_gange a écrit :
Hi everybody!

I have created several QTreeWidgetItem and connected a signal
"itemClicked(QTreeWidgetItem *,int)" on the QTreeWidget.

treeWidget=QtGui.QTreeWidget(widget)
...
itemTree1=QtGui.QTreeWidgetItem(treeWidget)
...
itemTree2=QtGui.QTreeWidgetItem(treeWidget)
...
self.connect(treeWidget,QtCore.SIGNAL("itemClicked(QTreeWidgetItem
*,int)"),self.function)
...
def function(self, item):
        print item
'print item' return:
<PyQt4.QtGui.QTreeWidgetItem object at 0x82cf62c>.


It's very abstract!

I must identify QTreeWidgetItem in order to connect it an action (view a
widget on the right), but how? With a method of the item reference? Which?
I don't know.

With the .text() method, i can recover the QTreeWidgetItem name:
print item.text(0), "\n"

But with no-ascii characters (ex: itemTree.setText(0,_(u"Filtres vidéos"))), there is an error:

Traceback (most recent call last):
File "/home/login/docs/langages/python/pyqt4/QTreeWidget.py", line 126, in
fonction
   print item.text(0), "\n"
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 11: ordinal not in range(128)
I find this one of the most annoying things in PyQt, it confuses me terribly. I think in this case you can do (for example)

print unicode(item.text(0)), "\n"

(the original result from item.text() being a QString)

But it may be that you need to specify an encoding and use the
encode or decode methods of unicode or string ...

_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to