2017-06-09 3 views
0
self.pushButton.clicked.connect(self.search) 

def search(self): 
    import subprocess 
    keyword = str(unicode(self.lineEdit.text())) 
    subprocess.call(["some command"]) 
    video_list = [] 
    self.listWidget.clear() 
    video_ret = parse_vid(video_list) 
    self.listWidget.addItems(video_ret) 
    self.listWidget.itemDoubleClicked.connect(self.surf) 

####################################################################### 
def surf(self): 
    print "hello" 

Dieser Code funktioniert gut zum ersten Mal. Aber wenn ich zum zweiten Mal auf die Drucktaste klicke, klicke ich auf listwidget, um zwei Methoden auszuführen. Wenn ich auf das dritte Mal in der Drucktaste klicke, klicke auf listwidget, um die Surf-Methode dreimal auszuführen. Kann mir jemand mit diesem seltsamen Problem helfen?Artikel von listwidgets in pyqt4 funktioniert nicht richtig

Antwort

0

Ein Signal kann an mehrere Steckplätze angeschlossen werden, in Ihrem Fall ist es besser, wenn Sie die Suchfunktion verwenden, dass Sie einen neuen Steckplatz hinzufügen.

self.listWidget.itemDoubleClicked.connect(self.surf) 
    self.pushButton.clicked.connect(self.search) 

def search(self): 
    import subprocess 
    keyword = str(unicode(self.lineEdit.text())) 
    subprocess.call(["some command"]) 
    video_list = [] 
    self.listWidget.clear() 
    video_ret = parse_vid(video_list) 
    self.listWidget.addItems(video_ret) 

####################################################################### 
def surf(self): 
    print("hello") 
+0

danke @ eyllanesc –