Difference between revisions of "Development/Tutorials/Printing Hello World"

Jump to: navigation, search
(With KDE 4: Add CMakeLists.txt for KDE4 (now less complicated :) ))
(How to compile: Get rid of gcc command for KDE4. Use CMake instead.)
Line 43: Line 43:
  
 
=How to compile=
 
=How to compile=
==With KDE 4==
+
==With KDE 4 and CMake==
Quite complicated:
+
===CMakeLists.txt===
gcc print.cpp -o print -I/home/kde-devel/qt-unstable/include/Qt \
+
-I/home/kde-devel/qt-unstable/include/Qt-Core \
+
-I/home/kde-devel/qt-unstable/include -I/home/kde-devel/kde/include \
+
-L/home/kde-devel/kde/lib -L/home/kde-devel/qt-unstable/lib -lkdeui \
+
-lkdecore -ldl -lkdeprint
+
 
+
===CMake===
+
====CMakeLists.txt====
+
 
<code>
 
<code>
project (printhelloworld)
 
 
find_package(KDE4 REQUIRED)
 
find_package(KDE4 REQUIRED)
 
include_directories( ${KDE4_INCLUDES} )
 
include_directories( ${KDE4_INCLUDES} )
kde4_add_executable(printhelloworld main.cpp)
+
kde4_add_executable(printhelloworld printtest.cpp)
 
target_link_libraries(printhelloworld ${KDE4_KDEPRINT_LIBS})
 
target_link_libraries(printhelloworld ${KDE4_KDEPRINT_LIBS})
 
</code>
 
</code>
====Make and Run====
+
===Make and Run===
 
Then do:
 
Then do:
 
  cmake .
 
  cmake .
Line 68: Line 59:
 
==With KDE 3==
 
==With KDE 3==
 
Quite easy:
 
Quite easy:
  gcc printtest.cpp -o print -I/usr/lib/qt3/include -I/opt/kde3/include \
+
  gcc printtest.cpp -o print -I/usr/lib/qt3/include \
-L/opt/kde3/lib -L/usr/lib/qt3/lib  -lqt-mt -lkdeprint
+
-I/opt/kde3/include -L/opt/kde3/lib \
 +
-L/usr/lib/qt3/lib  -lqt-mt -lkdeprint
  
 
=See also=
 
=See also=

Revision as of 15:54, 5 January 2007

Contents

The mission

Print Hello World on your printer.

The KDE version

This code will work for KDE 3 as for KDE 4.

The code

  1. include <kprinter.h>
  2. include <qpainter.h>
  3. include <kapplication.h>
  4. include <kaboutdata.h>
  5. include <kmessagebox.h>
  6. include <kcmdlineargs.h>

/* This prints Hello World on your printer

  • /

int main(int argc, char *argv[]) {

       KAboutData aboutData( "test", "test",
       "1.0", "test", KAboutData::License_GPL,
       "(c) 2006" );
       KCmdLineArgs::init( argc, argv, &aboutData );
       KApplication khello;
 KPrinter job;
 job.setFullPage( true );
 if ( job.setup() )
 {
   QPainter painter;
   painter.begin( &job );
   painter.drawText(100,100,"Hello World");
   painter.end(); 
   // this makes the print job start
 }

}

Explanation

You need a KDE instance to print, because this instance stores your configuration, including your printer configuration. You create one by instanciating the KApplication class.

How to compile

With KDE 4 and CMake

CMakeLists.txt

find_package(KDE4 REQUIRED) include_directories( ${KDE4_INCLUDES} ) kde4_add_executable(printhelloworld printtest.cpp) target_link_libraries(printhelloworld ${KDE4_KDEPRINT_LIBS})

Make and Run

Then do:

cmake .
make
./printhelloworld

With KDE 3

Quite easy:

gcc printtest.cpp -o print -I/usr/lib/qt3/include \
-I/opt/kde3/include -L/opt/kde3/lib \
-L/usr/lib/qt3/lib  -lqt-mt -lkdeprint

See also

Ktip.png
 
Tip
Note: This page deals with content related to KDE 3. If you are developing for KDE 4, this information might not be valid anymore.
Ktip.png
 
Tip
Note: This page is about KDE 4. It isn't applicable for KDE 3 development.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal