QT4, Signal&Slot + QImage - problem

0

Witam,

sytuacja wygląda następująco:

Tworze prosty dialog w qt. Na górze znajduje się label na którym wyświetlam obrazek ( obiekt QImage zmieniany na Pixmap ), poniżej jest suwak, który służy jako wyznacznik wielkości maski dla filtru medianowego. Po zmianie pozycji suwaka program automatycznie powinien przeprowadzić operację filtrowania z zadana wartością maski ( czy da się to zrobić tak żeby w miarę płynnie działało??).

Póki co kod wygląda następująco:

medianfilterdialog.h

#ifndef MEDIANFILTERDIALOG_H
#define MEDIANFILTERDIALOG_H

#include <QDialog>
#include <QtGui>

#include "ui_medianfilterdialog.h"

class MedianFilterDialog : public QDialog, public Ui_MedianFilterDialog
{
Q_OBJECT

public:
MedianFilterDialog(QWidget *parent = 0);

private slots:
void PerformeFiltering(int maskSize, QImage *MedianImg);

};

medianfilterdialog.cpp

#include <QtGui>

#include "medianfilterdialog.h"

MedianFilterDialog::MedianFilterDialog(QWidget *parent)
: QDialog(parent)
{
setupUi(this);
QImage MedianImg("1.jpg");

connect(maskSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(PerformeFiltering(int, MedianImg)));

}

void MedianFilterDialog::PerformeFiltering(int maskSize, QImage *MedianImage)
{
*tutaj jest implementacja filtru medianowego, która nie stanowi dla mnie kłopotu ( a przynajmniej tak *mi sie poki co wydaje:)

}

#endif

Problem oczywiście tkwi w funkcji

void MedianFilterDialog::PerformeFiltering(int maskSize, QImage *MedianImage)

oraz

connect(maskSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(PerformeFiltering(int, MedianImg)));

Przy kompilowaniu wyskakuje mi: "MedianImg" was not declared in this scope

Próbowałem zapisać deklarację tej funkcji na różne sposoby, deklarowałe QImage MedianImg w pliku nagłówkowym... niestety za każdym razem pojawiały sie problemy:/

Proszę o pomoc i z góry za nią dziękuję

Pozdrawiam Cyg

0

a tobie to w ogóle działa?
czy tworzenie tego połączenia jest zakończone sukcesem:

connect(maskSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(PerformeFiltering(int, MedianImg)));

Slot ma więcej argumentów niż sygnał, więc raczej na pewno zwraca to wartość false (błąd), a w logach powinien pojawić się wpis:

QObject: Incompatible sender/receiver arguments

Popraw tego posta bo czyta się go strasznie. Do kolorowania składni użyj tagów <cpp> i </cpp>

Zanim zaczniesz pisać coś większego naucz się podstaw. Ty chcesz użyć obiektu tymczasowego z konstruktora w późniejszym działaniu programu.
To, że wyklinałeś sobie coś QtDesigner nie oznacza, że wiesz co robisz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1