0

我有QSizeGrip一个QWidget父级,这个父级也有另一个QWidget父级,但我只想将此 sizeGrip 用于它的父级,而不是它的父级。我不希望这个 sizeGrip 在顶级窗口上工作。

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

4

1 回答 1

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);
}
于 2013-11-07T10:19:44.217 回答