Python PyQt QPushButton Заменить / перезаписать метод - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть такой код:

self.addBtn.clicked.connect(self.add)

if self.added:

    self.addBtn.clicked.connect(self.remove)

Но когда я нажимаю кнопку входа, он выполняет self.add, а затем self.remove.Есть ли способ удалить / перезаписать self.add?Спасибо

1 Ответ

0 голосов
/ 06 февраля 2019

Я не уверен, что понимаю, что вам нужно сделать, но попробуйте пример ниже:

import sys
from PyQt5.QtWidgets import (QPushButton, QVBoxLayout, QApplication, 
                             QWidget, QLabel)

class Test(QWidget):
    def __init__(self):
        super().__init__()

        self.flag = True

        self.label  = QLabel()
        self.addBtn = QPushButton("add") 
        self.addBtn.clicked.connect(self.add_remove)        

        vbox = QVBoxLayout(self)
        vbox.addWidget(self.label)
        vbox.addWidget(self.addBtn)

    def add_remove(self):
        if self.flag:
            print("You clicked the button: `add`")
            self.flag = False
            self.addBtn.setText("remove")
            # Do something ...
            self.label.setText("Hello Tom Rowbotham")
        else:
            print("You clicked the button: `remove`")
            self.flag = True
            self.addBtn.setText("add")
            # Do something ...       
            self.label.setText("")            


if __name__ == '__main__':
    app  = QApplication(sys.argv)
    w = Test()
    w.show()
    sys.exit(app.exec_())
...