Now we try to open the form "demo" that we created in the knoda tutorial. It is loosely based on example 2. The most important parts are again highlighted.
Example 4-1. Using a form
#define HAVE_SSTREAM 1 #include <kapp.h> #include <kaboutdata.h> #include <kcmdlineargs.h> #include <klocale.h> #include <hk_classes.h> #include <iostream> #include <hk_kdeform.h> #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; hk_kdeform* form = new hk_kdeform(NULL); app.setMainWidget(form); 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("mysql"); 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);} form->set_database(mydatabase); form->load_form("demo"); form->set_viewmode(); form->show(); int res= app.exec(); delete mydrivermanager; return res; }
The hk_kdeform needs only the database and then loads the (supposedly) existing form "demo". Finally set the view mode to see the data.