Есть такой виджет:
Нужно обработать mousePressEvent
только если клик произошел по виджету headerWidget
, как это можно сделать не перегружая его?
Установите перехватчик событий:
headerWidget->installEventFilter(headerClickHandler);
где headerClickHandler
— это переменная-экземпляр класса с временем жизни не меньше чем у headerWidget
. Сам же класс-перехватчик должен быть унаследован от QObject
и обрабатывать все необходимые события внутри своего eventFilter()
:
class HeaderClickHandler : public QObject
{
// Q_OBJECT не нужен — мы не работаем с сигналами и слотами
protected:
bool eventFilter(QObject* watched, QEvent* event)
{
// Так как mousePressEvent() — это лишь тонкая обёртка, вызываемая при
// поступлении события QEvent::MouseButtonPress, то мы можем ловить
// событие напрямую
#if __cplusplus >= 201103L
assert(event);
#endif
if(event->type() == QEvent::MouseButtonPress)
{
// Неявно предполагаем, что единственный перехватываемый объект —
// это headerWidget
// ... (производим все необходимые действия)
// Позволяем передать сообщение далее, обработчику headerWidget-а
return false;
}
}
}
Само условие задачи такое :Дано целое четырехзначное числоОпределить, какая сумма больше - первой пары цифр числа или второй пары
Написал обычное тестовое приложение для выбораpng файла из папок на компьютере
Есть следующая задача: изначально мы не знаем размер массива, который нам надо обработать, необходимо написать функцию, которая бы работала...