[FAQ] Qt4 Ressourcen

Archiv häufig gestellter Fragen zum Thema Qt
Antworten
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

[FAQ] Qt4 Ressourcen

Beitrag von FlorianBecker »

Was ist Qt4 Ressource?
Mit der Version Qt4 werden erstmal die Möglichkeit für eine Ressourcen Verwaltung bereitgestellt. Eine Ressource Verwaltung bietet die Möglichkeit binäre Dateien (z.B. Übersetzungen, Bilder) in der ausführbaren einzubinden und von dort direkt anzusprechen und zu verwenden.

Wie erstelle ich eine Ressource Datei?
Eine Ressource Datei (.qrc) sieht folgendermaßen aus:

Code: Alles auswählen

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
  <file>images/copy.png</file>
  <file>images/cut.png</file>
  <file>images/new.png</file>
  <file>images/open.png</file>
  <file>images/paste.png</file>
  <file>images/save.png</file>
</qresource>
</RCC>
Wie verarbeite ich eine Ressource Datei?
Mit RESOURCES = application.qrc wird die Quelle in die Projekt Datei eingetragen. Das beiliegende Tool rcc erstellt dann eine Objekt Datei und schließt das mit in die endgültige Anwendung ein. Schon hat man Zugriff auf diese Ressourcen. Der Vorteil liegt ganz klar darin, dass man anstatt 20 Bilddateien nur noch eine einige Datei hat, die komplett alles beinhaltet, was dazugehört.

Was kann ich mit den Ressourcen machen?
Die Ressourcen jetzt zu verwenden ist genauso simpel, wie es mit einer Factory in Qt3 funktioniert hat. Das Protokoll für das ansprechen von Dateien ist ":/" und funktioniert wie eine normale Dateiangabe in allen Klassen, die einen String als Dateiangabe erlauben, wie QDir, QFile oder QPixmap usw. Ein oben in die Ressource Datei geschriebenes Bild könnte man also einfach mit QPixmap pix( ":/images/copy.png" ); verwendet werden.

Welche Möglichkeiten habe ich für andere Sprachen?
Für den Fall das wir z.B. verschiedene Ressourcen für verschiedene Sprachen benötigen, gibt es die Möglichkeit einer weiteren Unterteilung. So könnte eine Unterteilung aussehen:

Code: Alles auswählen

 
<qresource> 
  <file>cut.jpg</file> 
</qresource> 
<qresource lang="fr"> 
  <file alias="cut.jpg">cut_fr.jpg</file> 
</qresource> 

Diese Unterteilung löst das Problem der Sprache. Benutzen man also die Sprache Französisch, wird das Bild cut_fr.jpg verwendet und bei allen anderen Sprachen immer cut.jpg. Sinnvoll sind solche Lösungen für z.B. eine Editor Anwendung, bei der das B für Bold steht und in Deutsch ein F für Fett vertrauter ist. Das Ansprechen erfolgt dabei direkt auf ":/cut.jpg", das Kürzel _fr wird von Qt bei dem verwenden der französischen Sprache automatisch angefügt.

Wo stehen die Informationen von Trolltech dazu?
http://doc.trolltech.com/4.0/resources.html
Antworten