有没有办法指定QSizeGrip在哪个父窗口小部件上工作?

时间:2013-10-23 09:54:12

标签: qt

我有一个QSizeGrip有一个QWidget父母,这个父母也有另一个QWidget父母,但是我想只为它的父母使用这个sizeGrip,而不是父母的父母。我不希望这个sizeGrip工作在顶层窗口。

有没有办法做到这一点?怎么办呢?

1 个答案:

答案 0 :(得分:0)

QSizeGrip安装事件过滤器:

p->size_grip = new QSizeGrip(0);
p->size_grip->installEventFilter(this);

然后在eventFilter

bool MyClass::eventFilter(QObject *o, QEvent *e)
{
    if(o == p->size_grip)
    {
        switch(static_cast<int>(e->type()))
        {
        case QEvent::MouseButtonPress:
            if(static_cast<QMouseEvent*>(e)->button() == Qt::LeftButton)
            {
            }
            break;
        case QEvent::MouseMove:
            //resizing...
            return true;
            break;
        case QEvent::MouseButtonRelease:
            if(static_cast<QMouseEvent*>(e)->button() == Qt::LeftButton)
            {
            }
            break;
        }
    }

    return QWidget::eventFilter(o,e);
}