pyqt4 中的 listwidgets 项目不能正常工作

items of listwidgets in pyqt4 doesn't work properly

    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"

此代码第一次运行良好。但是,如果我第二次单击按钮,则在 listwidget 中单击项目会给我两次执行 surf 方法。如果我第三次单击按钮,则在 listwidget 中单击项目三次执行 surf 方法。谁能帮我解决这个奇怪的问题??

一个信号可以连接到多个插槽,在您使用搜索功能时添加新插槽的情况下,最好添加一次。

    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")