Как заставить pyqt вызывать два метода нажатием одной кнопки - PullRequest
0 голосов
/ 19 октября 2018

Как вызвать два метода, когда я нажимаю одну кнопку в 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)

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы также можете позвонить установить 2 соединения:

self.trainPreproBtn.clicked.connect(self.preproClicked)
self.trainPreproBtn.clicked.connect(self.thresClicked)
0 голосов
/ 25 октября 2018

Вы можете создать функцию, вызывающую две другие функции, и связать ее с помощью кнопки.

self.trainPreproBtn.clicked.connect(self.connectionFunction)

@pyqtSlot()
def connectionFunction(self):
    self.firstFunction()
    self.secondFunction()

Я никогда не использую @pyqtSlot () декоратор в моих скриптах, но я предполагаю, что это должно быть здесь, так как вы используете его в своем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...