当我在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)
谢谢
答案 0 :(得分:0)
您可以创建一个调用其他两个函数的函数,并将其与按钮连接。
self.trainPreproBtn.clicked.connect(self.connectionFunction)
@pyqtSlot()
def connectionFunction(self):
self.firstFunction()
self.secondFunction()
我从不在脚本中使用@pyqtSlot()装饰器,但是我认为它应该在这里,因为您在代码中使用了它。
答案 1 :(得分:0)
您还可以呼叫2组连接:
self.trainPreproBtn.clicked.connect(self.preproClicked)
self.trainPreproBtn.clicked.connect(self.thresClicked)