Я попытался переопределить mouseClickEvent
, так как мне нужно отличить правый и левый клик. Я продвинул свой QListView
до WavList
и написал следующий код, но произошла ошибка.Продвижение виджета Qt: какая разница между этими двумя кодами?
wavlist.h
#ifndef WAVLIST_H
#define WAVLIST_H
#include <QWidget>
#include <QListView>
#include <QMouseEvent>
#include <QDebug>
class WavList : public QListView
{
Q_OBJECT
public:
explicit WavList(QWidget *parent = 0);
protected:
void mousePressEvent(QMouseEvent* event);
};
#endif // WAVLIST_H
wavlist.cpp
#include "wavlist.h"
WavList::WavList(QWidget *parent) : QWidget(parent)
{
qDebug() << "lol";
}
void WavList::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::RightButton)
{
event->ignore();
}
else
{
QListView::mousePressEvent(event);
}
}
я получил следующее сообщение об ошибке: C2614: 'WavList': illegal member initialization: 'QWidget' is not a base or member
.
Поэтому я исправил свой код следующим образом.
WavList::WavList(QWidget *parent)
{
this->setParent(parent);
qDebug() << "lol";
}
И это сработало! Мой вопрос в том, в чем разница?
Спасибо за ответ! – Azruine