Neverendingo (Talk | contribs) m (Text replace - "<code cppqt n>" to "<syntaxhighlight lang="cpp-qt" line>") |
Neverendingo (Talk | contribs) m (Text replace - "<code>" to "<syntaxhighlight lang="text">") |
||
| Line 68: | Line 68: | ||
=== CMakeLists.txt === | === CMakeLists.txt === | ||
| − | < | + | <syntaxhighlight lang="text"> |
find_package(KDE4 REQUIRED) | find_package(KDE4 REQUIRED) | ||
include_directories( ${KDE4_INCLUDES} ) | include_directories( ${KDE4_INCLUDES} ) | ||
To display the Print Dialog and print a document.
KDE uses the Qt Printing infrastructure, but adds extra standard features to the Print Dialog, as well as allowing applications to add their own extensions.
#include <QtGui/QPainter>#include <QtGui/QPrinter>#include <KdePrintDialog>#include <KPrintPreview>#include <KApplication>#include <KAboutData>#include <KCmdLineArgs>/*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 app;KAction* m_printPreview = KStandardAction::printPreview(app, SLOT(slotFilePrintPreview()), actionCollection());
KHelloWorldPrintDialogWidget optionsWidget;QPrinter printer;
printer.setFullPage(true);
QPrintDialog *printDialog = KdePrint::createPrintDialog(&printer, QList<QWidget*>() << &yourOptionsWidget, this);
printDialog.setWindowTitle(i18n("Print Hello World"));
if (printDialog.exec()) {
QPainter painter;
painter.begin(&printer);
painter.drawText(100,100,"Hello World");
if (optionsWidget.printMoreText()) {
}painter.end();
// this makes the print job start }}class KHelloWorldPrintDialogWidget : public QWidget
{bool printMoreText();
void setPrintMoreText(bool state);
setWindowTitle(i18n("Your Options Tab Title"));
}void KHelloWorld::slotFilePrintPreview() {
QPrinter printer;
KPrintPreview printPreview(&printer);
yourPrintDrawingRoutine(printer); // draws to the QPrinter
printPreview.exec();
}</code>
== How to compile ==
=== CMakeLists.txt ===
<syntaxhighlight lang="text">
find_package(KDE4 REQUIRED)
include_directories( ${KDE4_INCLUDES} )
kde4_add_executable(printhelloworld printtest.cpp)
target_link_libraries(printhelloworld ${${KDE4_KDECORE_LIBS} ${KDE4_KUTILS_LIBS} ${QT_QTGUI_LIBRARY})
</code>
=== Make and Run ===
Then do:
cmake .
make ./printhelloworld[[Category:KDE4]]
[[Category:C++]]