To get the all messages, warnings and dialogs away from the console to KDE use the function set_kdestandarddialogs() and include its header file hk_kdemessages.h.
Example 2.1. Getting the messages to KDE
#define HAVE_SSTREAM 1 #include <kapp.h> #include <kaboutdata.h> #include <kcmdlineargs.h> #include <klocale.h> #include <qwidget.h> #include <hk_classes.h> #include <iostream> #include <hk_kdemessages.h> static const char *description = I18N_NOOP("A hk_kdeclasses example Application"); static const char *version = "v0.1"; int main(int argc, char **argv) { KAboutData about("hk_kdeexample", I18N_NOOP("hk_kdeexample"), version, description, KAboutData::License_GPL, "(C) 2001 Horst Knorr", 0, 0, "hk_classes@knoda.org"); about.addAuthor( "Horst Knorr", 0, "hk_classes@knoda.org" ); KCmdLineArgs::init(argc, argv, &about); KApplication app; QWidget* widget = new QWidget; app.setMainWidget(widget); set_kdestandarddialogs(); hk_drivermanager* mydrivermanager = new hk_drivermanager(false); if (mydrivermanager==NULL) {cout <<"error creating mydrivermanager"<<endl;exit(1);} hk_connection* myconnection = mydrivermanager->new_connection(); if (myconnection==NULL) {cout <<"error creating myconnection"<<endl;exit(1);} myconnection->connect(); hk_database* mydatabase=myconnection->new_database("exampledb"); if (mydatabase==NULL) {cout <<"error creating mydatabase"<<endl;exit(1);} hk_datasource* mydatasource= mydatabase->new_table("authors"); if (mydatasource==NULL) {cout <<"error creating mydatasource"<<endl;exit(1);} mydatasource->enable(); widget->show(); int res= app.exec(); delete mydrivermanager; return res; }
Compile the program. Now you see a driver selection window followed by a login window. If you already have some experience with knoda you should recognize the dialogs.