Python Qt QListWidget双击

Clo*_*oak 5 python pyqt qlistwidget signals-slots pyqt4

我想为我的QListWidget对象添加双击属性.

我的命令行不起作用:

   self.connect(self.listWidget, QtCore.SIGNAL("itemDoubleClicked(QtGui.QListWidgetItem)"), self.showItem)
Run Code Online (Sandbox Code Playgroud)

如何添加双击属性?如何将对象参数提供给QtCore.SIGNAL.

ekh*_*oro 7

信号连接不起作用的原因是您使用了错误的签名QListWidget.itemDoubleClicked.它应该看起来像这样:

self.connect(self.listWidget,
             QtCore.SIGNAL("itemDoubleClicked(QListWidgetItem *)"),
             self.showItem)
Run Code Online (Sandbox Code Playgroud)

但是,我建议您避免使用这种连接信号altogther的方法,而是切换到新式语法.这将允许您重写上面的代码,如下所示:

self.listWidget.itemDoubleClicked.connect(self.showItem)
Run Code Online (Sandbox Code Playgroud)

这不仅更简单,更清晰,而且更不容易出错(事实上,如果使用错误的信号名称/签名,将会引发异常).