大概是这个样子,没有测试过
QObject × getObj(QObject* iobj)
{
if( !iobj)
return NULL;
QObjectList * list = iobj->children();
QObject *op;
for ( op= list.first();op;op = list.next() )
{
if( op->children()->count()>0)
{
QObject * ret = getObj(op);//如果还有child,递归调用此函数
if( ret )
return ret;
}
QPushButton *bt = dynamic_cast<QPushButton*>(op)//把这个object转为按钮
if( bt)
{
//添加你判断位置的代码,如果在区域内,返回op
}
}
return NULL;
}
还是推荐使用事件过滤,eventFilter,QT带有例子。