【问题标题】:How make pyqt called two method by clicking one button如何通过单击一个按钮使pyqt调用两种方法
【发布时间】:2018-10-19 16:59:12
【问题描述】:

当我在 PyQt 中单击一个按钮时如何调用两个方法

self.trainPreproBtn.clicked.connect(self.preproClicked, self.thresClicked)

@pyqtSlot()
def preproClicked(self):
    gray = cv2.cvtColor(self.image, cv2.IMREAD_COLOR)
    self.image = cv2.cvtColor(gray,cv2.COLOR_BGR2GRAY)
    #(thresh, im_bw) = cv2.threshold(self.image, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
    #resize_image = cv2.resize(im_bw, (180, 180))
    self.displayImage(2)
@pyqtSlot()
def thresClicked(self):
    gray = cv2.cvtColor(self.image, cv2.IMREAD_COLOR)
    self.image = cv2.cvtColor(gray, cv2.COLOR_BGR2GRAY)
    self.image = cv2.threshold(self.image, 128, 255, cv2.THRESH_BINARY )
    self.displayImage(4)

谢谢

【问题讨论】:

    标签: python opencv button pyqt5


    【解决方案1】:

    您可以创建一个调用其他两个函数的函数并将其与按钮连接。

    self.trainPreproBtn.clicked.connect(self.connectionFunction)
    
    @pyqtSlot()
    def connectionFunction(self):
        self.firstFunction()
        self.secondFunction()
    

    我从不在我的脚本中使用 @pyqtSlot() 装饰器,但我认为它应该在这里,因为您在代码中使用它。

    【讨论】:

      【解决方案2】:

      您也可以调用 set 2 连接:

      self.trainPreproBtn.clicked.connect(self.preproClicked)
      self.trainPreproBtn.clicked.connect(self.thresClicked)
      

      【讨论】:

        猜你喜欢
        • 2019-02-28
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 2014-03-01
        • 2015-08-14
        • 2021-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多