[TIP] KMainWindow, XMLGui für das Hauptfenster und createGui

Alles zur Entwicklung von KDE - Anwendungen
Antworten
taki
Beiträge: 30
Registriert: 8. Februar 2005 15:52
Wohnort: Berlin

[TIP] KMainWindow, XMLGui für das Hauptfenster und createGui

Beitrag von taki »

Wie bringe ich KMainWindow bei seine XMLGui zu laden?
Da habe ich nun so viele Howtos und Tutorien und alte und neue Bücher gelesen und einfach nicht hinbekommen, dass meine XMLGui für das Hauptfenster geladen wird, obwohl alles stimmte. Nur für mein Plugin wird die XMLGui automatisch ohne weitere Angaben geladen. Wird die XMLGui für das Hauptfenster nicht vorher geladen, landen alle Einträge aus der XMLGui des Plugins leider hinter den Standardeinträgen. Man hat dann keine Möglichkeit auf die Positionierung Einfluß zu nehmen. Die XMLGui des Hauptfensters ist daher absolut wichtig.

Die halbe Lösung brachte letztendlich intensives stundenlanges Googeln an den Tag. Der Trick besteht darin, dass man bei createGui() den Pfad zur Datei appnameui.rc vorgibt.

Man möchte den Pfad dabei wohl kaum hardcoden (wie es in dem Hinweis gemacht wurde, den mir Google brachte), da sonst die ausgeklügelte Menü- und Toolbarkonstruktion zwar unter der eigenen Distribution funktioniert, aber z.B. auf einer Fedora oder einem Debianderivat übersetzt wieder nur die Standardactions geladen würden, weil die appnameui.rc wo anders liegt.

Dafür gibt es die Klasse KStandardDirs, deren Header man einbindet ("#include <kstandarddirs.h>"). Mit folgendem createGui()-Aufruf kommt man nun endlich in den Genuss der eigenen Menüstruktur:
createGui( locate ( "apps", "appnameui.rc"), true );

Nachwort
In keinem der vielen Tutorien findet man den Hinweis auf die Pfadangabe beim Aufruf von createGui(). Wenn jemand eine andere Lösung kennt, würde mich das sehr interessieren.[/i]
Antworten