[PyQt] SIGNAL("itemActivated(QListWidgetItem *)") problem

paolomilani at rocketmail.com paolomilani at rocketmail.com
Mon Jun 1 18:03:53 BST 2009


Hi! :)
I've a little problem with SIGNAL("itemActivated(QListWidgetItem *)").

When kde4.2.2 is set on double click mode, everything is ok, but when it's set on single click mode, I select items with ctrl+click and SIGNAL itemActivated is emitted.  Is it a bug? or is it my misunderstanding?

many thanks,
Paolo

My system is kubuntu 9.04 (python 2.6.2, Qt 4.5.0, PyQT 4.4.4). Tested on amd64 and i386 platform.

-----

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyKDE4.kdeui import *

class ListWidgetTest(QDialog):
    def __init__(self, parent=None):
        super(ListWidgetTest, self).__init__(parent)

        listWidget = QListWidget()
        listWidget.setSelectionMode(QAbstractItemView.ExtendedSelection)
        layout = QVBoxLayout()
        layout.addWidget(listWidget)
        self.setLayout(layout)

        self.connect(listWidget, SIGNAL("itemClicked(QListWidgetItem *)"), self.printClicked)
        self.connect(listWidget, SIGNAL("itemActivated(QListWidgetItem *)"), self.printActivated)
        item0 = QListWidgetItem("0")
        item0.setData(Qt.UserRole, QVariant(1))
        item1 = QListWidgetItem("1")
        item1.setData(Qt.UserRole, QVariant(1))
        item2 = QListWidgetItem("2")
        item2.setData(Qt.UserRole, QVariant(1))
        listWidget.insertItem(0, item0)
        listWidget.insertItem(1, item1)
        listWidget.insertItem(2, item2)

    def printClicked(self, item):
        print "clicked", item.text()
    def printActivated(self, item):
        print "activated", item.text()


if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    dialog = ListWidgetTest()
    dialog.show()
    app.exec_()




      



More information about the PyQt mailing list