Как обработать в одном обработчике 2 события released() и pressed()?

Есть кнопка(QPushButton), при нажатии выставляется одна картинка, при отпускании кнопки мыши картинка меняется на первоначальную. Хочется сделать в одном обработчике. Т.е на псевдокоде:

connect(PushButton, SIGNAL(Какой-то сигнал),this,SLOT(buttonHandler()))

buttonHandler(){
if event.pressed() 
       button->setImage(1)
else
       button->setImage(2)
 }

Как правильно реализовывать такое поведение в QT? Неужели пихать 2 обработчика для 2-х событий(released и pressed) и делать 2 connect-а ?


Ответы (1 шт):

Автор решения: Андрей Петров

Ну в итоге лучше решения не нашел, кроме как 2 события прикрутить к одному обработчику след образом. Если есть решение более элегантное, то прошу рассказать))

void MainWindow::changeAddDictionaryIcon(){
    QPushButton* sender = qobject_cast<QPushButton*>(QObject::sender());
    if (sender->isDown()){
        addDictionaryPushButton->setIcon(QIcon("Path to img1"));
    }else{
        addDictionaryPushButton->setIcon(QIcon("Path to img2"));
    }
}
→ Ссылка