使用PyQt4中的方法连接QListView的双击事件

Pau*_*aul 6 python qt qt4 pyqt pyqt4

我有一个PyQt QListView对象,我想要一个双击时运行的方法.这应该是微不足道的,但它似乎不起作用.我的代码如下:

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!"
Run Code Online (Sandbox Code Playgroud)

我也试过clicked()entered()方法,但它们也不起作用.这些事件都列在这里文档中.

Pau*_*aul 12

它似乎工作如果:

self.connect(lb, SIGNAL('doubleClicked()'), self.someMethod)
Run Code Online (Sandbox Code Playgroud)

替换为新的语法:

lb.doubleClicked.connect(self.someMethod)
Run Code Online (Sandbox Code Playgroud)

后者也更优雅.但是,我仍然不知道为什么原始语法不起作用.