English | Deutsch

Letztes Update: 7. 2008

Einstieg in die QCad Libraries

Eine kurze Einführung für Entwickler, welche die QCad Libraries nutzen wollen.

Kompilieren der Beispiele

Die nachfolgenden Beispiele kommen mit allen nötigen Quelldateien und Projekt Dateien um kompiliert werden zu können.

Vorbereitung

Herunterladen der QCad Libraries

Bevor Sie anfangen müssen Sie die QCad Libraries herunterladen und kompilieren. Der einfachte Weg ist die QCad Community Edition herunterzuladen und zu kompilieren. Dadurch werden auch die QCad Libraries erstellt.

Im Folgenden wird angenommen, dass die QCad Libraries erfolgreich im Verzeichnis $HOME/qcad2 kompiliert wurden.

Installation der QCad Libraries

Die Beispiele müssen in der Lage sein, die QCad Libraries und ihre Header Dateien zu finden. Ich empfehle, diese in die Verzeichnisse $HOME/local/lib und $HOME/local/include zu installieren. Dies kann automatisch, mit Hilfe der Makefiles geschehen:

cd $HOME/qcad2/dxflib
make install
cd $HOME/qcad2/qcadlib
make install
cd $HOME/qcad2/qcadcmd
make install
cd $HOME/qcad2/qcadactions
make install
cd $HOME/qcad2/qcadquiqt
make install

# falls verfuegbar / benoetigt:
cd $HOME/qcad2/qcadprof
make install
cd $HOME/qcad2/qcadscripting
make install

Nun sollte Ihr System in der Lage sein, die Beispiele zu kompilieren:

> qmake example01.pro
> make
g++ -c -pipe -Wall -W -g   -I/opt/qt/mkspecs/linux-g++ -I. 
  -I/home/andrew/local/include -I/opt/qt/include -I.moc/ 
  -o .obj/main.o main.cpp
g++  -o example01 .obj/main.o    -Wl,-rpath,/opt/qt/lib 
  -L/opt/qt/lib -L/usr/X11R6/lib -L/home/andrew/local/lib 
  -lqcad -lqcadguiqt -ldxf -lqcadguiqt -lqcad -ldxf -lqt 
  -lXext -lX11 -lm

.. und auszuführen:

> ./example01
 Line: (10/20/0/50/100/0)

Beispiel 1: Erstellen einer Grafik

Dieses Beispiel erstellt eine Grafik mit einer Linie.

#include "qcadlib/rs_graphic.h"
#include "qcadlib/rs_line.h"

/**
 * Main.
 */
int main() {
  // neue leere Grafik erstellen:
  RS_Graphic* graphic = new RS_Graphic();
  
  // Linie von 10/20 zu 50/100
  RS_LineData data(RS_Vector(10.0, 20.0), RS_Vector(50.0, 100.0));
  RS_Line* line = new RS_Line(graphic, data);

  // Linie der Grafik hinzufuegen
  graphic->addEntity(line);

  // Linie auf Konsole streamen
  std::cout << *line;

  // Grafik loeschen (dies loescht auch die Linie)
  delete graphic;
}

Dateien herunterladen

main.cpp | example01.pro

Beispiel 2: Grafik Ansicht erstellen

Dieses Beispiel erstellt eine Grafik Ansicht um die Linie aus Beispiel 1 darzustellen.

#include "rs_graphicview.h"
#include "rs_graphic.h"
#include "rs_line.h"

#include "qg_graphicview.h"

#include <qapplication.h>
#include <qmainwindow.h>

/**
 * Main.
 */
int main(int argc, char** argv) {
  // neue leere Grafik erstellen:
  RS_Graphic* graphic = new RS_Graphic();
  
  // Linie von 10/20 zu 50/100
  RS_LineData data(RS_Vector(10.0, 20.0), RS_Vector(50.0, 100.0));
  RS_Line* line = new RS_Line(graphic, data);
  line->setPen(RS_Pen(RS_Color(255,0,0), RS2::Width12, RS2::SolidLine));

  // Linie der Grafik hinzufuegen
  graphic->addEntity(line);

  // Qt Applikation erzeugen:
  QApplication app(argc, argv);

  // Grafik Ansicht als Applikations Fenster erzeugen:
  QG_GraphicView graphicView;
  graphicView.setContainer(graphic);
  graphicView.setCaption("QCad - Example 2");
  app.setMainWidget(&graphicView);
  app.connect(&app, SIGNAL(lastWindowClosed()), 
              &app, SLOT(quit()));

  graphicView.show();
  return app.exec();
}

Dateien herunterladen

main.cpp | example02.pro