Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 有没有办法指定QSizeGrip在哪个父窗口小部件上工作?_Qt - Fatal编程技术网

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

Qt 有没有办法指定QSizeGrip在哪个父窗口小部件上工作?,qt,Qt,我有一个QSizeGrip,它有一个QWidget父对象,这个父对象还有另一个QWidget父对象,但是我只想将这个sizeGrip用于它的父对象,而不是它的父对象。我不想在顶级窗口上进行此大小的修改 有没有办法做到这一点?如何执行此操作?为QSizeGrip安装事件筛选器: p->size_grip = new QSizeGrip(0); p->size_grip->installEventFilter(this); 然后在eventFilter中: bool MyClas

我有一个
QSizeGrip
,它有一个
QWidget
父对象,这个父对象还有另一个
QWidget
父对象,但是我只想将这个sizeGrip用于它的父对象,而不是它的父对象。我不想在顶级窗口上进行此大小的修改


有没有办法做到这一点?如何执行此操作?

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);
}
boolmyclass::eventFilter(QObject*o,QEvent*e)
{
如果(o==p->size\u夹点)
{
开关(静态转换(e->type())
{
案例QEvent::鼠标按钮按下:
if(static_cast(e)->button()==Qt::LeftButton)
{
}
打破
案例QEvent::MouseMove:
//调整大小。。。
返回true;
打破
案例QEvent::鼠标按钮释放:
if(static_cast(e)->button()==Qt::LeftButton)
{
}
打破
}
}
返回QWidget::eventFilter(o,e);
}

文档说:
QSizeGrip类提供了一个调整顶层窗口大小的句柄。
谢谢。我使用
eventFilter
受保护的函数和
case-QEvent::MouseButtonPress
case-QEvent::MouseMove
case-QEvent::MouseButtonRelease
解决了这个问题。您可以将您的解决方案作为答案发布,并在可能的时候接受它。