Bei mir haberts gerade an dem Verständnis: GTK2-Applikation mit Spin-Button, die dazugehörigen ENTRY-Felder und die Spin-Buttons will ich zur Laufzeit verändern. Da ganze aus der Unterfunktion für das Zeichnen der Kurve, diese wir aufgerufen wenn: Zeitgesteuert die Werte vom Meßgerät geholen werden Die Werte aus einem File eingelesen werden Ausgabe als PDF/PNG Aufbau ist wie folgt Main -> Callback oder Timerfunction -> Einlesefunktion File/Bus oder eine der drei Zeichenfunktion. Codeausschnitt: typedef struct { GtkWidget *window; GtkWidget *gw_set_maxtime; GtkWidget *gw_set_mintime; GtkWidget *gw_set_average_window; GtkWidget *gw_set_max; GtkWidget *gw_set_min; GtkWidget *gw_max; GtkWidget *gw_min; GtkWidget *gw_maxtime; GtkWidget *gw_menuitem_start; GtkAdjustment *adj_set_max; GtkWidget *filesel; } r2101_data; main: r2101_data wg_data; ... adj_set_maxtime = (GtkAdjustment *) gtk_adjustment_new (1,0,1000000,1,10,0); gw_set_maxtime = gtk_spin_button_new(adj_set_maxtime,0,0); gtk_signal_connect(GTK_OBJECT(gw_set_maxtime), "value-changed",GTK_SIGNAL_FUNC(screen_refresh),(gpointer*) &wg_data) ... wg_data.gw_set_maxtime = gw_set_maxtime; Callback void screen_refresh(GtkWidget *widget, r2101_data *data) { gint width, height; // Window width & height cairo_t *cr; cr = gdk_cairo_create(widget->window); gdk_drawable_get_size(widget->window, &width, &height); plot(cr, width,height,?????); cairo_destroy(cr); } void plot(cairo_t *cr, gint width, gint height, r2101_data *data) { gdouble MAX_X = record_counter; // max X scale MAX_X = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->set_maxtime)); } Der Compilier meldet aber: racal2101-plot.c:574:56: error: ‘r2101_data {aka struct <anonymous>}’ has no member named ‘set_maxtime’ Wie muss ich die Funktion plot korrekt deklarieren und dann aufrufen? Über eine Ebene geht das. Gruß Andreas
Andreas F. schrieb: > Der Compilier meldet aber: > racal2101-plot.c:574:56: error: ‘r2101_data {aka struct <anonymous>}’ > has no member named ‘set_maxtime’ Das Ding heisst ja auch
1 | gw_set_maxtime
|
und nicht
1 | set_maxtime
|
aber das sagt dir der Compiler ja. Und aufrufen must du das dann so:
1 | void screen_refresh(GtkWidget *widget, r2101_data *data) { |
2 | ...
|
3 | |
4 | plot(cr, width, height, data); |
5 | |
6 | ...
|
7 | }
|
Kaj schrieb: > Andreas F. schrieb: >> Der Compilier meldet aber: >> racal2101-plot.c:574:56: error: ‘r2101_data {aka struct <anonymous>}’ >> has no member named ‘set_maxtime’ > Das Ding heisst ja auch >
1 | > gw_set_maxtime |
2 | >
|
> und nicht >
1 | > set_maxtime |
2 | >
|
> aber das sagt dir der Compiler ja.
Asche über mein Haupt:
Das kommt davon wenn man im Code Fehler sucht, anfängt Variablen
umzubennen und dann nicht irgendwann den Überblick verliert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.