Вам просто нужно подключить сигнал кнопки clicked
к вашей функции.
button.clicked.connect(pressed_mouse2)
Теперь, когда вы нажимаете кнопку, вы можете выполнить любой код здесь:
def pressed_mouse2():
print('Button clicked')
Существует множество видов виджетов, каждый из которых имеет разные сигналы. Вы можете найти их в документации Qt. Здесь - это сигналы для QAbstractButton, который наследуется QPushButton.
Нет предопределенного сигнала для щелчка правой кнопкой мыши по кнопке, но вы можете создать подкласс QPushButton и выдать свой собственный сигнал в mousePressEvent()
.
class Button(QPushButton):
right_clicked = pyqtSignal()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def mousePressEvent(self, event):
super().mousePressEvent(event)
if event.button() == Qt.RightButton:
self.right_clicked.emit()
И он ответит:
button = Button(root)
button.right_clicked.connect(pressed_mouse2)