Seite 1 von 1
Fehler zur Laufzeit: QApplication: invalid Display* argument
Verfasst: 14. August 2005 13:03
von bastl
Code: Alles auswählen
main.cpp
---------------------------
#include <qapplication.h>
#include "steuerung.h"
int main()
{
QApplication app( 0, 0 );
steuerung *mainWin = new steuerung( 0 );
app.setMainWidget( mainWin );
mainWin->setCaption( "Werkzeugtool" );
mainWin->show();
app.connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()) );
return app.exec();
}
---------------------------
Ich bekomme beim Ausführen des Programms diesen Fehler.
Es funktioniert jedoch und mein Test-Widget, das auf der steuerung-Klasse hängt
wird auch korrekt angezeigt. Hänge ich aber mein richtiges Widget ein (Kde-Knöpfe ... etwas
komplex) ist der Fehler der gleiche, das Widget wird dann aber nicht mehr angezeit.
Kennt sich da jemand mit aus ?
Das Angeben einer GUI Umgebung in QAplication hat den gleichen Efekt der Fehler erscheint dann jedoch 2 mal.
Vielleicht funktioniert unter KDE auch nur KApplication?
Verfasst: 14. August 2005 15:37
von Christian81
Es muss main(int argc, char **argv) und app( argc,argv) heissen.
Verfasst: 15. August 2005 10:13
von bastl
Sorry, aber ich benötige keine Optionen und Dateien für dieses Programm.
Ändert auch nichts an dem Fehler !
Verfasst: 15. August 2005 14:14
von Christian81
Es ist egal ob du Optinen brauchst oder nicht, aber die Argumente sollten an QApplication übergeben werden (in argv[0] steht nämlich der Dateiname der ausgeführten Datei).
Funktioniert das erste Tutorial von qt? Ist deine DISPLAY - variable korrekt gesetzt?
Wenn ich mir den Sourcecode von qapplication.cpp anschaue ist es nämlich der Fehler dass du 0,0 übergibst (und nicht argc,argv), da du so einen falschen Konstruktor benutzt der eine Übergabe eines Displays verlangst (welches du auf 0 setzt). Siehe hier:
http://doc.trolltech.com/3.3/qapplicati ... lication-4
Verfasst: 15. August 2005 19:54
von bastl
Ah, ja.
Das macht dann schon eher Sinn.
...
Ne der Fehler ist immer noch.
Liegt wahrscheinlich an KDevelop.
...
Hab mir jetzt (mit KApplication) ein neues generiert - Funktioniert jetzt perfekt.
Verfasst: 16. August 2005 06:41
von Christian81
bastl hat geschrieben:Ah, ja.
Ne der Fehler ist immer noch.
Das glaube ich dir nicht.
Entweder du hast ein altes executable oder du rufst QApllication immer noch falsch auf. Der Fehler kann nur mit dem falschen Konstruktor auftreten. Mit KApplication funktinioert es weil dort der korrekte Kontruktor benutzt wird.
Poste deine aktuelle main.cpp.
Verfasst: 16. August 2005 12:03
von bastl
Ja, setzte einfach argc und argv ein ganz normal halt ,
ich hab es leider schon gelöscht.
Irgendeine Umgebungsvariable ist da verstellt gewesen oder
das Programm wurde außerhalp vom KDE-Objekt (GUI ) gestartet.
Lag bestimmt an KDevelop - kann mir das sonst auch nicht erklären.
Naja, jetzt geht es ja.
Also vielen Dank nochmal.