Fehler zur Laufzeit: QApplication: invalid Display* argument

Alles rund um die Programmierung mit Qt
Antworten
bastl
Beiträge: 4
Registriert: 14. August 2005 12:33
Wohnort: BW->Pforzheim
Kontaktdaten:

Fehler zur Laufzeit: QApplication: invalid Display* argument

Beitrag 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?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Es muss main(int argc, char **argv) und app( argc,argv) heissen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bastl
Beiträge: 4
Registriert: 14. August 2005 12:33
Wohnort: BW->Pforzheim
Kontaktdaten:

Beitrag von bastl »

Sorry, aber ich benötige keine Optionen und Dateien für dieses Programm.
Ändert auch nichts an dem Fehler !
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bastl
Beiträge: 4
Registriert: 14. August 2005 12:33
Wohnort: BW->Pforzheim
Kontaktdaten:

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bastl
Beiträge: 4
Registriert: 14. August 2005 12:33
Wohnort: BW->Pforzheim
Kontaktdaten:

Beitrag 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.
Antworten