Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

QT4 - Sygnały i sloty - problem z funkcją connect

1 view
Skip to first unread message

Paweł

unread,
Dec 26, 2009, 8:34:02 AM12/26/09
to
Witam wszystkich

Sďż˝ dwie klasy:
a) jedna, to klasa g��wna(SuperCopy - modyfikacja GUI),
b) druga, to klasa-w�tek(CopyThread - wykonuje operacje zwi�zane z
kopiowaniem plikow)

Klasa SuperCopy wyglada tak:

class SuperCopy : public QMainWindow {
{
Q_OBJECT

...
private slots:
void updateMainGUIByThread(CopyThread *thread);
...
}

konstruktor klasy CopyThread wyglada tak:

CopyThread::CopyThread(Ui::SuperCopy *ui, QFileSystemModel
*srcDirFileSystemModel, QFileSystemModel *dstDirFileSystemModel,
SuperCopy *MainGUI)
{
this->MainGUI = MainGUI;
...
connect(this, SIGNAL(tmpSignal(QString)), MainGUI,
SLOT(updateMainGUIByThread(this)));
...
}
Komunikat o bledzie:
copythread.cpp:33: error: no matching function for call to
'CopyThread::connect(CopyThread* const, const char*, SuperCopy*&, const
char*)'

Powiedzcie, co ja robie nie tak? Musze przekazac do glownego watku adres
aktualnie wybranego watku, bo chyba inaczej nie bede mogl sie dostac do
danych z konkretnego watku bez adresu. Robilem juz chyba wszystko i nie
wiem, co jest nie tak.

Mariusz Marszałkowski

unread,
Dec 27, 2009, 3:50:47 AM12/27/09
to
On 26 Gru, 14:34, Paweł <ppf9@USUN_TOpoczta.fm> wrote:
> Powiedzcie, co ja robie nie tak?

Może zacząłeś od zbyt trudnego zadania na sygnałach? Może przekopiuj
prostszy przykład z tutoriala, skompiluj i przełóż go na ten swój
trudniejszy?


Mariusz Marszałkowski

unread,
Dec 27, 2009, 5:15:34 AM12/27/09
to
On 26 Gru, 14:34, Paweł <ppf9@USUN_TOpoczta.fm> wrote:
> Witam wszystkich
>
> Są dwie klasy:
> a) jedna, to klasa główna(SuperCopy - modyfikacja GUI),
> b) druga, to klasa-wątek(CopyThread - wykonuje operacje związane z

> kopiowaniem plikow)
>
> Klasa SuperCopy wyglada tak:
>
> class SuperCopy : public QMainWindow {
> {
>      Q_OBJECT
>
> ...
> private slots:
>         void updateMainGUIByThread(CopyThread *thread);
> ...
>
> }
>
> konstruktor klasy CopyThread wyglada tak:
>
> CopyThread::CopyThread(Ui::SuperCopy *ui, QFileSystemModel
> *srcDirFileSystemModel, QFileSystemModel *dstDirFileSystemModel,
> SuperCopy *MainGUI)
> {
> this->MainGUI = MainGUI;
> ...
> connect(this, SIGNAL(tmpSignal(QString)), MainGUI,
> SLOT(updateMainGUIByThread(this)));
> ...}
>
> Komunikat o bledzie:
> copythread.cpp:33: error: no matching function for call to
> 'CopyThread::connect(CopyThread* const, const char*, SuperCopy*&, const
> char*)'
>
> Powiedzcie, co ja robie nie tak?
Może coś takiego jak w przykładzie ping-pong Ci wystarczy?

Paweł

unread,
Dec 27, 2009, 5:37:51 AM12/27/09
to
On 2009-12-27 09:50, Mariusz Marsza�kowski wrote:

> On 26 Gru, 14:34, Paweďż˝<ppf9@USUN_TOpoczta.fm> wrote:
>> Powiedzcie, co ja robie nie tak?
>
> Mo�e zacz��e� od zbyt trudnego zadania na sygna�ach? Mo�e przekopiuj
> prostszy przyk�ad z tutoriala, skompiluj i prze�� go na ten sw�j
> trudniejszy?
>
Dzieki. Jak sie okazalo, musialem dodac dyrektywa include deklaracje
klasy SuperCopy(#include "supercopy.h") i wtedy wszystko poszlo, a
przynajmniej sie kompiluje. Domyslam sie, ze nie wiedzial, ze ta klasa
dziedziczy po QObject i dlatego sie kompilator czepial.
Teraz mam nastepny problem z tymi slotami, ale sprobuje sie sam z tym
uporac, a jak mi sie nie uda, to sie odezwe na grupe.

Mariusz Marszałkowski

unread,
Dec 27, 2009, 10:14:30 AM12/27/09
to
On 27 Gru, 11:37, Paweł <ppf9@USUN_TOpoczta.fm> wrote:

> On 2009-12-27 09:50, Mariusz Marszałkowski wrote:> On 26 Gru, 14:34, Paweł<ppf9@USUN_TOpoczta.fm>  wrote:
> >> Powiedzcie, co ja robie nie tak?
>
> > Może zacząłeś od zbyt trudnego zadania na sygnałach? Może przekopiuj
> > prostszy przykład z tutoriala, skompiluj i przełóż go na ten swój
> > trudniejszy?
>
> Dzieki. Jak sie okazalo, musialem dodac dyrektywa include deklaracje
> klasy SuperCopy(#include "supercopy.h") i wtedy wszystko poszlo, a
> przynajmniej sie kompiluje. Domyslam sie, ze nie wiedzial, ze ta klasa
> dziedziczy po QObject i dlatego sie kompilator czepial.
> Teraz mam nastepny problem z tymi slotami, ale sprobuje sie sam z tym
> uporac, a jak mi sie nie uda, to sie odezwe na grupe.

Właśnie tak Ci odpisałem że nie widzi QObject, ale uznałem że
to wiesz i zmieniłem treść :)

Pozdrawiam

0 new messages