Возникла такая проблема: создал класс, унаследовавшись от QPushButton
и обнаружил, что не могу переопределить mouseReleaseEvent
так как он не является виртуальным. Мне нужно, чтобы кнопка при нажатии на нее правой кнопкой реагировала по-другому, но, так как этот метод я не могу переопределить, то не знаю как это сделать. Вариант с наследованием от QAbstractButton
рассматривать не хочется, так как QPushButton
и так соответствует всем моим требованием (за исключением этого-вот момента).
Как заставить кнопку реагировать на правую кнопку мыши (выполнять действия отличные от тех, что выполняются при нажатии левой кнопки)?
UPD Данная проблема связана с опечаткой, вопрос, по-сути, не имеет смысла.
Согласно документации Qt http://doc.qt.io/qt-5/qwidget.html#mouseReleaseEvent
Метод QWidget::mouseReleaseEvent
является виртуальным. Можете поподробней описать, как Вы пытались переопределить метод?
#include <QApplication>
#include <QPushButton>
#include <QDebug>
#include <QMessageBox>
class MyButton : public QPushButton
{
public:
MyButton(QWidget *parent = nullptr):
QPushButton(parent)
{
}
protected:
virtual void mouseReleaseEvent(QMouseEvent *event) override
{
QMessageBox::information(this, "", "WOW It's mouseReleaseEvent");
QPushButton::mouseReleaseEvent(event);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyButton w;
w.setText("MY BUTTON");
w.show();
return a.exec();
}
Установите фильтр событий (installEventFilter
) и добавляйте туда необходимую логику.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Кто работал с WT на C++ под Windows она может рендерить HTML в приложении winapi?
Как например создать кнопку со своим стилем в WinAPI к примеру как ето делается в C# WPF? Или нужно рисовать rectangle, искать координаты и тд самому?
Столкнулся с ошибкой при сборки проекта
Пользователь должен задать лимит строки умножения данного типа, без FOR итдТолько goto, счетчик и if :C Вот типа так :