Russian Qt Forum
Ноябрь 24, 2024, 00:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: EventFiltr  (Прочитано 2246 раз)
sektor
Самовар
**
Offline Offline

Сообщений: 100


Просмотр профиля
« : Февраль 25, 2017, 23:30 »

Создал wizard, на которой находится label. Его использую для отображения изображения. Задача  - при изменения размеров окна изменялся и изображение не сохраня пропорции сторон. Для этого я использую EventFiltr. Но программа завершается крахом ((
Код:
#include "wizardremont.h"
#include "ui_wizardremont.h"
#include <QDebug>

WizardRemont::WizardRemont(QWidget *parent) :
    QWizard(parent),
    ui(new Ui::WizardRemont)
{
    ui->setupUi(this);

    ui->label->installEventFilter(this);
}

WizardRemont::~WizardRemont()
{
    delete ui;
}

bool WizardRemont::eventFilter(QObject *obj, QEvent *evt)
{
    if( evt->type() == QEvent::Resize)
    {
        QImage image(":/imeg/remont_4.png");
        ui->label->setPixmap(QPixmap::fromImage(image).scaled(width()/4,height()));
    }
    return WizardRemont::eventFilter(obj, evt);
}
 
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #1 : Февраль 26, 2017, 00:11 »

Не нужно вызывать
Код:
return WizardRemont::eventFilter(obj, evt);
это приводит к рекурсивному зацикливанию

Нужно вернуть false или true, в зависимости от того требуется дальнейшая обработка события или нет.
Записан
sektor
Самовар
**
Offline Offline

Сообщений: 100


Просмотр профиля
« Ответ #2 : Февраль 26, 2017, 08:08 »

Спасибо, все получилось.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.