[PyQt] [help]QListView object has no attribute 'currentItem'

matteo.boscolo at boscolini.eu matteo.boscolo at boscolini.eu
Wed Jun 30 16:11:00 BST 2010


Try this ..
    def showCurrentItem(self):
##        print self.listView.columns()
        aa=self.model.itemFromIndex(self.listView.currentIndex())
        print aa.text()
Regards,
Matteo
----------------------------------------------------------------------

Da			 pyqt-bounces at riverbankcomputing.com
A	         pyqt at riverbankcomputing.com
Cc           
Data Wed, 30 Jun 2010 10:34:37 -0400
Oggetto [PyQt] [help]QListView object has no attribute 'currentItem'

> Hello, can someone teach me how to solve this problem?
> I first created a QListView with the following two lines.
>         self.listView = QListView(self)
>         self.listView.setModel(model)
> Afterwards, I hope to get the currentItem with "print
> self.listView.currentItem().text()", but this does not work. The error says:
> ''AttributError; QListView object has no attribute 'currentItem'
> How could I solve this? It seems that I  could  not use any of the members
> of QListView. Thanks.
> My code is below:
> 
> 
> # -*- coding: utf-8 -*-
> from PyQt4.QtCore import *
> from PyQt4.QtGui import *
> from PyQt4 import QtCore, QtGui
> import sys
> from random import randint
> 
> class View(QWidget):
>     def __init__(self, parent=None):
>         super(View, self).__init__(parent)
> 
> 
>         model = QStandardItemModel()
> 
>         for n in range(10):
>             item = QStandardItem('Item %s' % randint(1, 100))
> 
>             check = Qt.Checked if randint(0, 1) == 1 else Qt.Unchecked
> 
>             item.setCheckState(check)
>             item.setCheckable(True)
> 
>             model.appendRow(item)
> 
>         model.connect(model, SIGNAL("itemChanged(QStandardItem *)"),
> self.itemChanged)
>         self.listView = QListView(self)
>         self.listView.setModel(model)
> 
>         self.model = model
> 
>         self.resize(300, 240)
> 
>         self.contextMenu = QtGui.QMenu(self)
>         action = QtGui.QAction('Current Item', self)
>         self.connect(action, QtCore.SIGNAL("triggered()"),
> self.showCurrentItem)
>         self.contextMenu.addAction(action)
> 
>     def showCurrentItem(self):
> ##        print self.listView.columns()
>         print self.listView.currentItem().text()
> 
>     def contextMenuEvent(self, event):
>         self.contextMenu.exec_(event.globalPos())
> ##
> 
>     def itemChanged(self, item):
>         for row in range(self.model.rowCount()):
>             item = self.model.item(row, 0)
>             if item.checkState() == Qt.Checked:
>                 print item.text(), 'is selected'
>         print '--------------------------------'
> 
> if __name__ == '__main__':
>     app = QApplication(sys.argv)
>     view = View()
>     view.show()
>     app.exec_()
> 
> 
> ---------------------------
> He Jibo
> Department of Psychology,
> Beckman Institute for Advanced Science and Technology
> University of Illinois, Urbana Champaign,
> 603 East Daniel St.,
> Champaign, IL 61820
> website: www.hejibo.info
> 



More information about the PyQt mailing list