重新打开插件会越来越多地调用函数

时间:2016-09-07 12:15:15

标签: python qt pyqt qgis

我有一个用Python 2.7.3编写的QGIS插件,PyQt 4.9.1,Qt 4.8.1。当我运行这个插件时,每个功能都可以正常工作。但当我关闭窗口并再次重新打开它时,每个功能都会发生两次。然后我再次关闭/打开,它会等3次,等等。

我应该在哪里查找错误?我的def run(self)部分看起来像这样:

def run(self):

    self.dlg.show()

    self.availableLayers()

    self.dlg.pushButton_2.clicked.connect(self.openFile)

    self.dlg.pushButton.clicked.connect(self.groupBy)

    self.dlg.toolButton_4.clicked.connect(self.toggleRightPanel)

如果我通过点击"插件生成器"中的按钮重新加载插件,它将从一个开始。

我还应该提到我不想丢失用户创建的视图(插件是一个表格查看器),而是能够关闭窗口,打开它并在那里再次使用它而不清除单元格

1 个答案:

答案 0 :(得分:0)

每次拨打connect时,它都会添加另一个连接 - 即使它连接到同一个广告位。因此,您需要将连接移出run()方法并将它们放入对话框的设置方法中,以便它们只进行一次。