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.