大家好,我
开发过程中出现了这样的
问题:
父控件
安装事件过滤器,被监视的子控件被delete后,重新赋值,但是过滤器却无法再对其接受的事件做出反应
我说的不是很清楚,基本代码如下。
class workPage
{
private:
QLabel * l1;
QDateEdit * d1;
......
};
class cuteface:public QDialog
{
Q_OBJECT
private:
workPage * wpage;
bool eventFilter(
QObject * target, QEvent * event);
......
};
cuteface::cuteface()
{
......
wpage->installEventFilter(this);
......
}
bool cuteface::eventFilter(QObject * target, QEvent * event)
{
if(target == wpage)
if(event->type() == QEvent::KeyPress)
{
QKeyEvent * keyevent = static_cast<QKeyEvent *>(event);
if(keyevent->key() == Qt::Key_A)
{
delete wpage ;
wpage = new workPage;
wpage ->installEventFilter(this);
wpage ->setFocus();
return true;
}
......
}
按过A键后 wpage 被重新赋值,但是针对他的任何事件都无法被事件过滤器捕捉。 请大家帮我分析下,先谢过。
[ 此帖被lrbnk在2011-04-14 23:24重新编辑 ]