Как обработать в одном обработчике 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"));
}
}