Здравствуйте, не могу никак понять, как применить фильтр событий к изменению размера виджета. Например, при помощи мыши растягиваю главное окно, а его виджет потомок растягивается пропорционально. Вот небольшой пример, не воплощённый в жизнь:
#include <QtGui>
class MouseFilter : public QObject
{
public:
MouseFilter(QObject *pobj = 0) : QObject(pobj){}
protected:
bool eventFilter(QObject *pobj, QEvent *pe)
{
if(pe->type() == QEvent::Resize){
QResizeEvent *sizeEvent = static_cast<QResizeEvent*> (pe);
return true;
}else
return false;
}
};
class ResizeObserver : public QLabel{
public:
ResizeObserver(QWidget *pwgt = 0) : QLabel (pwgt)
{
setAlignment(Qt::AlignCenter);
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
ResizeObserver wgt;
QWidget chwgt(&wgt);
chwgt.resize(200,200);
chwgt.move(30,25);
chwgt.installEventFilter(new MouseFilter(&chwgt));
chwgt.setStyleSheet(QString::fromUtf8("background-color: rgb(250, 251, 251);\n"));
wgt.setStyleSheet(QString::fromUtf8("background-color: rgb(255, 255, 255);\n"));
wgt.resize(250,250);
wgt.show();
return app.exec();
}