[PyQt] using itemDoubleClicked with pyqt

Christopher M. Nahler christopher.nahler at papermodels.at
Wed Jun 23 10:12:03 BST 2010


thanks alot. understood the args format for the signal function now!

On 23.06.2010 10:51, Zoltan Szalai wrote:
> use:
> self.myList.itemDoubleClicked.connect(self.processItem)
>
> or:
> self.connect(self.myList, SIGNAL("itemDoubleClicked(QListWidgetItem 
> *)"), self.processItem)
>
> both work fine here
>
> regards
> Zoltan
>
> Christopher M. Nahler wrote:
>>
>> On 23.06.2010 09:46, Phil Thompson wrote:
>>>  On Wed, 23 Jun 2010 09:40:09 +0200, "Christopher M. Nahler"
>>> <christopher.nahler at papermodels.at>   wrote:
>>>
>>>>  I have problems using a signal. In the code below I create a 
>>>> QListWidget
>>>>  where I would like to act upon doubleClicking an item.
>>>>
>>>>  In the documentation I have found the signal "itemDoubleClicked".
>>>>  (http://doc.qt.nokia.com/4.6/qlistwidget.html#itemDoubleClicked)
>>>>  But somehow I am not using it right. What am I doing wrong?
>>>>
>>>>  thanks in advance
>>>>  Chris
>>>>
>>>>
>>>>
>>>>  import sys
>>>>  from PyQt4.QtCore import *
>>>>  from PyQt4.QtGui import *
>>>>
>>>>  itemList = ["One",
>>>>                 "Two",
>>>>                 "Three",
>>>>                 "Four",
>>>>                 "Five"]
>>>>
>>>>  class ListDlg(QDialog):
>>>>
>>>>        def __init__(self, name, parent=None):
>>>>            super(ListDlg, self).__init__(parent)
>>>>
>>>>            self.myList = QListWidget()
>>>>            self.myList.addItems(itemList)
>>>>            self.myList.setCurrentRow(0)
>>>>
>>>>            layout = QHBoxLayout()
>>>>            layout.addWidget(self.myList)
>>>>            self.setLayout(layout)
>>>>            self.connect(self.myList, 
>>>> SIGNAL("itemDoubleClicked(*item)"),
>>>>  self.processItem)
>>>>
>>>>        def processItem(self, item):
>>>>            print(item.text())
>>>>
>>>>  if __name__ == "__main__":
>>>>        app = QApplication(sys.argv)
>>>>        form = ListDlg("Listdialog")
>>>>        form.exec_()
>>>>
>>>  The signal signature is "itemDoubleClicked(QListWidgetItem *)"
>>>
>>>  Phil
>>>
>> The way I understand this is that the signal passes a pointer to an
>> item, right? So what is the correct way to setup the connection? I have
>> tried with SIGNAL("itemDoubleClicked(item*)" and
>> SIGNAL("itemDoubleClicked(item *)" but that also did not work.
>>
>



More information about the PyQt mailing list