Qt e le classi per gestire i file ZIP non esportate (non documentate)

Le classi Qt, internamente, gestiscono i file compressi allo scopo di salvare i text document in formato file ODF (Open Document Format).

Per poter utilizzare tali classi, chiamate QZipReader e QZipWriter, si devono prelevare dai sorgenti posizionati in QtInstall/5.0.0/Src/qtbase/src/gui/text/ i seguenti files:

  • qzip.cpp
  • qzipreader_p.h
  • qzipwriter_p.h

La guida per queste classi non esiste ma si può sempre studiare gli headers. Nel caso il linker producesse un errore del tipo “ld: symbol(s) not found for architecture x86_64
potrebbe darsi che la libreria ZLib non sia presente nel sistema; la Qt possono ovviare al problema utilizzando la versione interna di Zlib indicando nel file di progetto (.pro) la direttiva LIBS += -lz

Nella compilazione su una piattaforma differente ho riscontrato un errore “error: zlib.h: No such file or directory” risolto con la modifica, qzip.cpp, dell’inclusione dell’header #include <zlib.h> ==>  #include <QZLib/zlib.h>