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
解决了这个问题。您可以将您的解决方案作为答案发布,并在可能的时候接受它。