Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: LinuxFanUNIX в May 31, 2012, 18:47



Титла: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: LinuxFanUNIX в May 31, 2012, 18:47
Имам класа Login:

в него имам слота checkData(QString username, QString password) който се извиква от QPushButton. Дотук всичко е добре. Само че аз искам когато направи проверките за данните да се emit-не сигнала loggedIn(). Естествено правя го след if-овете
Код
GeSHi (C++):
  1. if (pass == ... && user == ... {
  2.    emit loggedIn();
  3. }

Работата е там че дори и без да съм написал emit-а, още когато извикам този клас от друг клас и го connect-на, той автоматично се emit-ва, всякаш в констуктора имам emit, а аз нямам.

Как мога да се оправя в настоящата ситуация?

Благодаря предварително!


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: bvbfan в May 31, 2012, 19:22
Без да поместиш кода, не виждам как някой ще помогне, аз не хвърлям боб  ???


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: LinuxFanUNIX в Jun 01, 2012, 01:06
loginscreen.h

Код
GeSHi (C++):
  1. class LoginScreen {
  2. ...
  3. signals:
  4.    void loggedIn();
  5. }
  6.  


loginscreen.cpp

Код
GeSHi (C++):
  1. ...
  2. if (username == ui->username->text(); && password == ui->password->text()) {
  3.    emit loggedIn(); // със или без това се emit-ва още при инициализирането на класа
  4. }

mainwindow.cpp

Код
GeSHi (C++):
  1. ...
  2. ls = new LoginScreen();
  3. connect(ls, SIGNAL(loggedIn()), this, SLOT(mainSlot());


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: bvbfan в Jun 01, 2012, 08:39
След connect(ls, SIGNAL(loggedIn()), this, SLOT(mainSlot()); се емитва сигнала така ли? Нещо не ми се връзва...   ???


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: LinuxFanUNIX в Jun 01, 2012, 13:27
След connect(ls, SIGNAL(loggedIn()), this, SLOT(mainSlot()); се емитва сигнала така ли? Нещо не ми се връзва...   ???
Точно така. И на мен не ми се връзва.  :(


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: task_struct в Jun 02, 2012, 14:22
Да нямаш функция със същото име?


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: LinuxFanUNIX в Jun 03, 2012, 01:34
Да нямаш функция със същото име?
Не, не е това.  :(


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: bvbfan в Jun 03, 2012, 22:57
Единственият вариант е да си сложил
Код
GeSHi (C++):
  1. ...
  2. if (username == ui->username->text(); && password == ui->password->text()) {
  3.    emit loggedIn(); // със или без това се emit-ва още при инициализирането на класа
  4. }
да се извиква преди да си инициализирал userame и password, те да празни стрингове и мачват с тези от UI-то, защото и те са празни и сигналът се емитва, друг начин за мен няма.


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: growchie в Jun 04, 2012, 11:06
Каква е тази ; след ui->username->text()?


Титла: Re: [QT4] Собствен сигнал се emit-ва при извикване на класа
Публикувано от: LinuxFanUNIX в Jun 10, 2012, 21:05
Тази ";" е просто допусната грешка при писане, тъй като не пиша от личния си компютър, затова и не отговарям по темата... Като се прибера ще видя какви съм ги сготвил и ще пиша отново...