Issue
I’ve got a PyQt QListView
object, and I want a method to run when it is double-clicked. This should be trivial, but it doesn't seem to work. My code is as follows:
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
lb = QListView()
self.connect(lb, SIGNAL('doubleClicked()'), self.someMethod)
grid = QGridLayout()
grid.addWidget(lb, 0, 0)
centralWidget.setLayout(grid)
def someMethod(self):
print "It happened!"
I’ve tried clicked()
and entered()
methods too, but they do not work either. These events are all listed in the documentation here.
Solution
It seems to work if:
self.connect(lb, SIGNAL('doubleClicked()'), self.someMethod)
Is replaced with the new syntax of:
lb.doubleClicked.connect(self.someMethod)
The latter is much more elegant too. I still do not know why the original syntax did not work, however.
Answered By - Paul
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.