[gelöst] applicationDirPath() funktioniert nicht in qt3

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
ralli
Beiträge: 4383
Registriert: 02.03.2008 08:03:02

[gelöst] applicationDirPath() funktioniert nicht in qt3

Beitrag von ralli » 25.08.2011 07:18:59

Ich portiere gerade einige meiner Anwendungen von qt4 auf qt3 3.3.8b zurück, weil mir qt4 zu fett geworden ist. Das klappt in der Regel auch ganz gut. Hier aber habe ich ein Problem:

Code: Alles auswählen

QDir dir(QApplication::applicationDirPath());
In Qt4 funktionierte das einwandfrei, jetzt kommt diese Fehlermeldung:
Fehler: incomplete type »QApplication« used in nested name specifier
Ich habe mir schon einen Wolf gegoogelt, aber keine Lösung gefunden. Wie unschwer zu sehen ist, will ich nur den Pfad des aufzurufenden Programmes ermitteln.
Zuletzt geändert von Anonymous am 29.08.2011 04:33:35, insgesamt 1-mal geändert.
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: QApplication::applicationDirPath() funktioniert nicht in

Beitrag von GoKi » 25.08.2011 09:01:36

Es ist in Qt3 keine statische Methode soweit ich weiß. Nachdem Du den Header

Code: Alles auswählen

#include <qapplication.h>
eingebunden hast, steht per qApp ein Pointer zur Verfügung, auf dem Du die Methode aufrufen könntest.

Bzgl. Rückportieren auf Qt3:
Ich halte das für keine gute Idee. qt3 wird upstream nicht gepflegt. Debian will es afaik aus dem Repository entfernen bis zum nächsten stable. Das Paket hat derzeit auch keinen Maintainer.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=625502
Ich würde bei Qt4 bleiben.
MfG GoKi
:wq

Benutzeravatar
ralli
Beiträge: 4383
Registriert: 02.03.2008 08:03:02

Re: QApplication::applicationDirPath() funktioniert nicht in

Beitrag von ralli » 25.08.2011 10:11:05

Danke GoKi, ich bin jetzt wieder zur Vernunft gekommen und bleibe bei Qt4. Das neue SDK erschien mir für meine Zwecke überdimensioniert, zu Mal es zu einer eiermilchlegenden Wollmilchsau mutiert ist... Aber Qt 4.6.3 mit Qdevelop reicht mir für meine Zwecke.
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

Benutzeravatar
ralli
Beiträge: 4383
Registriert: 02.03.2008 08:03:02

Re: QApplication::applicationDirPath() funktioniert nicht in

Beitrag von ralli » 27.08.2011 06:13:45

Ich habe noch Mal darüber geschlafen und meine Entscheidung überdacht. Warum ist Qt3 bei CentOS noch bis 2017 mit an Bord? Wie kommen solche Entscheidungen eigentlich zustande und wer ist daran beteiligt oder kann Einfluß nehmen? Ich bin und war nie ein Versionsjunki und habe auch nicht vor, das jemals zu werden. Aber dieser Veröffentlichungswahn mit immer kürzeren Lebenszyklen hat mir bisher in meiner Arbeit nicht genutzt, sondern eher geschadet. Geschadet deshalb, weil viele Programme immer resourcenfressender werden, immer größer und damit leider auch unübersichtlicher. Bleiben wir bei Qt, beim neuen SDK ist alles gebündelt mir drin, aber dadurch wird der Qt Creator auch nicht besser. Gibt es überhaupt noch so etwas wie Planungssicherheit? Gerne hätte ich mal ein IT Buch geschrieben, aber wenn das erste Kapitel fertig ist, ist der Inhalt schon wieder veraltet. Vielleicht sollten wir uns mal Gedanken über eine Entschleunigung machen. Meineserachtens beschreitet CentOS den richtigen Weg. Stabilität und Langlebigkeit sind für mich Qualitätsmerkmale. Und da gibt es nicht viele OS, die diese Kriterien erfüllen. Im übrigen hatte ich schon richtig includiert, aber das hat leider auch nicht funktioniert. So, das lag mir noch am Herzen und ich möchte das nicht weiter ausführen. Vielleicht war früher nicht alles besser, aber die durch den Zeitdruck entstandenen Verschlimmbesserungen können auch nicht dazu beitragen, geistige Kreativität zu fördern.
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

owl102

Re: QApplication::applicationDirPath() funktioniert nicht in

Beitrag von owl102 » 27.08.2011 08:47:25

ralli hat geschrieben:Bleiben wir bei Qt, beim neuen SDK ist alles gebündelt mir drin
...was ich persönlich sehr gut finde. Dadurch wird es dem Einsteiger sehr viel einfacher gemacht, eine Qt-Entwicklungsumgebung zum Laufen zu bekommen.
aber dadurch wird der Qt Creator auch nicht besser.
Man kann ja nach wie vor den Qt Creator (und auch die Qt-Bibliotheken etc.) einzeln installieren bzw. updaten.

Benutzeravatar
ralli
Beiträge: 4383
Registriert: 02.03.2008 08:03:02

Re: QApplication::applicationDirPath() funktioniert nicht in

Beitrag von ralli » 27.08.2011 10:00:55

owl102, Du hast Recht, das mit QT war auch nur EIN Beispiel, aber insgesamt habe ich schon den Eindruck, das viele Programme langsam Ihren Zenith überschritten haben, der Firefox mutierte auf seltsame Art und Weise binnen weniger Wochen von der Version 3.6 auf jetzt 6.0. Was diese Versionspolitik bezwecken soll, erschließt sich mir nicht wirklich. Bei Qt habe ich sogar noch ein gewisses Verständnis... aber auch da geht es mir viel zu schnell..... nicht das ich damit überfordert wäre, ich lehne das generell ab. Allerdings ging es mir eigentlich darum, den Pfad des aufzurufenen Programmes unter Qt3 zu ermitteln, was mir noch immer nicht gelungen ist. Ich wollte keinen Glaubenskrieg enfesseln, obwohl ich bekennender wertkonservativer Minimalist bin, denn:

EINACH IST GENIAL
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: QApplication::applicationDirPath() funktioniert nicht in

Beitrag von GoKi » 27.08.2011 10:19:20

ralli hat geschrieben:Allerdings ging es mir eigentlich darum, den Pfad des aufzurufenen Programmes unter Qt3 zu ermitteln, was mir noch immer nicht gelungen ist.

Code: Alles auswählen

#include <qapplication.h>
//...
QString appDir = qApp->applicationDirPath();
MfG GoKi
:wq

Benutzeravatar
ralli
Beiträge: 4383
Registriert: 02.03.2008 08:03:02

Re: QApplication::applicationDirPath() funktioniert nicht in

Beitrag von ralli » 27.08.2011 10:44:26

Danke GoKi, was bin ich für ein Dussel... da steht es doch fett in der Qt Doku:

Code: Alles auswählen

The global qApp pointer refers to this application object. Only one application object should be created.
Da habe ich den Abschnitt nur halb gelesen, jetzt funktioniert es natürlich. :D
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

Antworten