Seite 1 von 1

Problem mit connect(...)

Verfasst: 2. Januar 2009 16:38
von devcube
Hallo,


ich bin neu in der Qt-Welt und habe folgendes Problem:

Ich habe einen PushButton mit folgendem Code "klickbar" gemacht:

Code: Alles auswählen

connect(sucheButton, SIGNAL(clicked()), this, SLOT(suche()));
Doch wenn ich auf den Button klicke, passiert nichts.
Code von suche():

Code: Alles auswählen

bool MyApp::suche()
{
  pageWebView->load(QUrl("http://google.de"));
}
Was habe ich da falsch gemacht?


mfg devcube

Verfasst: 2. Januar 2009 17:00
von upsala
Wie sieht der Return-Wert vom connect aus? Was gibt es für Fehlermeldungen auf der Konsole? Wurde die Methode suche() als Slot markiert?

Verfasst: 2. Januar 2009 17:04
von devcube
Wie kann ich den return-Wert und die Fehlermeldung der Konsole ansehen?

Die Methode Suche wurde als Slot markiert:

Code: Alles auswählen

private slots:
        bool suche();
Ich benutze Qt in Verbindung mit Dev-C++ und habe es nach dieser Anleitung eingerichtet: http://www.c-plusplus.de/forum/viewtopi ... -is-0.html

Verfasst: 2. Januar 2009 17:24
von MiKla
Wie kann ich den return-Wert und die Fehlermeldung der Konsole ansehen?
Der Rückgabewert von connect ist ein bool, see auch:

Code: Alles auswählen

bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection )   [static]
Unter Linux sollte eine Fehlermeldung automatisch in der Konsole erscheinen unter Windows brauchst du in Deinem Pro-File "CONFIG +=console"

Michael

Verfasst: 2. Januar 2009 17:34
von devcube
Die Fehlermeldung der Konsole kenne ich mittlerweile:
Object::connect: No such slot QWebView::suche();
Wie kann ich denn den Rückgabewert von connect() auslesen bzw. sichtbar machen?

Verfasst: 2. Januar 2009 18:48
von MiKla
Wie man das immer macht...?

Code: Alles auswählen

bool ok = connect(...
qDebug() << ok;
Michael

Verfasst: 2. Januar 2009 18:56
von Christian81
Q_OBJECT vergessen

Verfasst: 2. Januar 2009 19:52
von devcube
Q_OBJECT vergessen
Das hatte ich mal reingeschrieben gehabt, als ich das Projekt noch in einer Datei, main.cpp, hatte. Da gab es irgendwie immer einen Fehler, der nur kam, wenn Q_OBJECT in der Klasse stand.

Dann habe ich das Projekt in Header usw. aufgeteilt und Q_OBJECT natürlich nicht mehr drinstehen gehabt. Auf deine Antwort hin habe ich es wieder reingeschrieben und nun funktioniert das Programm!!! (Der Rückgabewert von connect() ist jetzt true :D)

Danke ihr drei :wink: