crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Гость_Юрий_*
сообщение 1.3.2012, 16:46
Сообщение #1





Гости








    


Здравствуйте, не могу никак понять, как применить фильтр событий к изменению размера виджета. Например, при помощи мыши растягиваю главное окно, а его виджет потомок растягивается пропорционально. Вот небольшой пример, не воплощённый в жизнь:
#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();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 29.5.2025, 11:49