Connectez double-cliquez sur l'événement de QListView avec la méthode en PyQt4
J'ai un PyQt QListView
objet, et je veux une méthode à exécuter lorsque l'utilisateur double-clique dessus. Cela devrait être trivial, mais il ne semble pas fonctionner. Mon code est comme suit:
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!"
J'ai essayé clicked()
et entered()
méthodes de trop, mais ils ne fonctionnent pas non plus. Ces événements sont tous répertoriés dans le la documentation ici.
OriginalL'auteur Paul | 2010-12-22
Vous devez vous connecter pour publier un commentaire.
Il semble que si:
Est remplacée par la nouvelle syntaxe de:
Ce dernier est beaucoup plus élégante, trop. Je ne sais toujours pas pourquoi la syntaxe d'origine n'a pas de travail, cependant.
OriginalL'auteur Paul
Il fonctionnera également si vous utilisez:
vérifier la pyqt de référence, puis copiez et collez le signal tel qu'il est.
Je sais que vous avez déjà résolu. mais je pense que la connaissance de plus d'une méthode sera mieux.
OriginalL'auteur Moayyad Yaghi
itemDoubleClicked
est un signal émis parQListWidget
et pasQListView
. J'ai testé Moayyad Yaghi de la suggestion et il ne fonctionne pas pour moi, au moins sur Qt 4 avec python 2.5Si,
lb.doubleClicked.connect(self.someMethod)
fonctionne parfaitement bien.OriginalL'auteur Rahul Singh