标题:为何我安装的事件过滤器没有效果?
作者:advanceduser
日期:2010-01-06 13:16
内容:
代码是这样的:
class MainWindow:
public QMainWindow
{
Q_OBJECT
public:
MainWindow(void);
protected:
bool eventFilter(QEvent* event);
private:
QGraphicsView* _view;
};
MainWindow::MainWindow(void)
{
_view = new QGraphicsView;
setCentralWidget(_view);
installEventFilter(_view);
}
bool MainWindow::eventFilter(QEvent* event)
{
qDebug()
#1 [dbzhang800 01-06 13:35]
bool QObject::eventFilter ( QObject * watched, QEvent * event )
#2 [advanceduser 01-06 13:49]
我太马虎了,不过函数按照原型改好后仍然无法相应过滤器,为何?
#3 [jorneyr 01-06 16:22]
_view = new QGraphicsView;
setCentralWidget(_view);
_view ->installEventFilter(this);
你的过滤器装反了。
仔细看文档中,哪一个是watched:被监控对像。哪一个是监控对象。
void QObject::installEventFilter ( QObject * filterObj )
Installs an event filter filterObj on this object. For example:
monitoredObj->installEventFilter(filterObj);
An event filter is an object that receives all events that are sent to this object.
#4 [hackself 01-06 17:09]
引用第3楼jorneyr于2010-01-06 16:22发表的:
_view = new QGraphicsView;
setCentralWidget(_view);
_view ->installEventFilter(this);
.......
完全同意....
#5 [advanceduser 01-06 22:44]
谢谢jorneyr帮忙,确实是这里的问题,是我弄错了。