[PyQt] get list of selected items in a listWidget

Christos Parliaros cparliaros at gmail.com
Mon Mar 26 21:39:50 BST 2012


*Is there any better, more efficient way to achieve the following:*

from PyQt4.QtCore import *
> from PyQt4.QtGui import *
> import ui_list
> class Test(QDialog,ui_list.Ui_Dialog):
> def __init__(self, parent=None):
> super(Test, self).__init__(parent)
> self.setupUi(self)
> for i in range(10):
> item = QListWidgetItem("Item %i" % i)
> self.listWidget.addItem(item)
>   #self.listWidget.itemClicked.connect(self.printItemText)
> self.connect(self.listWidget, SIGNAL("itemSelectionChanged()"),
> self.printItemText)
>
> def printItemText(self):
> items = self.listWidget.selectedItems()
> x=[]
> for i in range(len(items)):
> x.append(str(self.listWidget.selectedItems()[i].text()))
> print x
> if __name__ == "__main__":
> import sys
> app = QApplication(sys.argv)
> form = Test()
> form.show()
> app.exec_()


*I couldnt find any way to get a list with all the selected items as text,
so I had to create this loop.*
*
*
*Here is the code from the ui_list.py from qtdesigner:*

from PyQt4 import QtCore, QtGui
> try:
>     _fromUtf8 = QtCore.QString.fromUtf8
> except AttributeError:
>     _fromUtf8 = lambda s: s
> class Ui_Dialog(object):
>     def setupUi(self, Dialog):
>         Dialog.setObjectName(_fromUtf8("Dialog"))
>         Dialog.resize(231, 315)
>         Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog",
> "Dialog", None, QtGui.QApplication.UnicodeUTF8))
>         self.listWidget = QtGui.QListWidget(Dialog)
>         self.listWidget.setGeometry(QtCore.QRect(10, 10, 211, 291))
>
> self.listWidget.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
>         self.listWidget.setObjectName(_fromUtf8("listWidget"))
>         self.retranslateUi(Dialog)
>         QtCore.QMetaObject.connectSlotsByName(Dialog)
>     def retranslateUi(self, Dialog):
>         pass


*thanks in advance*
-- 
Christos Parliaros
VFX Technical Director and Artist
www.cparliaros.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20120326/5560fccb/attachment.html>


More information about the PyQt mailing list