我有一个QSizeGrip
有一个QWidget
父母,这个父母也有另一个QWidget
父母,但是我想只为它的父母使用这个sizeGrip,而不是父母的父母。我不希望这个sizeGrip工作在顶层窗口。
有没有办法做到这一点?怎么办呢?
答案 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);
}