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.