Hej
Jeg har et stort problem med at få tegnet en linje på et gnome
canvas. En bid af koden:
void mainWindow::addLine(int x, int y)
{
Point xx(100,100);
Point yy(300,300);
cout << "addLine called and points made" << endl;
CanvasPoints points((CanvasPoints::size_type)2);
cout << "CanvasPoint object made" << endl;
points.push_back(yy);
points.push_back(xx);
cout << "push_back points done" << endl;
cout << points[0] << ", " << points[1] << endl;
cout << "Make line" << endl;
Gnome::CanvasLine* line = manage(new Gnome::CanvasLine(*rootGroup
,"points", points.gtkobj()
,"fill_color", "black"
,"width_units", 2.0,
, NULL));
line->show();
cout << "Line drawn" << endl;
}
Koden kompilerer, men når jeg kalder addLine(1,1) (parametrene
bliver pt. ikke brugt), kommer følgende fejl i g++ (lige efter "Make
Line". Den få dog skrevet "Line drawn" ud):
Gtk-CRITICAL **: file gtkobject.c: line 939
(gtk_object_add_arg_type): assertion `arg_type > GTK_TYPE_NONE'
failed.
GnomeUI-WARNING **: gnome_canvas_item_construct(): could not find
argument "points" in the `Gnome__CanvasLine' class ancestry
Den sidste warning forstår jeg ikke, for jeg har kompileret
eksempelprogrammer, der bruger samme metode til at oprette linjen.
Glem at koden er grim lige nu, for jeg har rodet frem og tilbage med
den, og har også prøvet at sætte punkterne ind med
line->set_points(points.gtkobj()).
API'en til gnome-- kan findes her:
http://gtkmm.sourceforge.net/docs/gnome/class_index.html
--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me