Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Problem mit gdk_cairo_create

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.05.2012
    Beiträge
    21

    Problem mit gdk_cairo_create

    Hallo!
    ich habe eine gtk2.0 Anwendung mit einem Glade file.
    In dem Glade Dialog ist ein zeichenbereich (drawing-area) "darea1"
    Ich wollte aber einen Frabverlauf ausprobioeren, wie eine Amleitung es beschreibt, habe aber immer eine Fehlermeldung:


    Der Quelltext sieht so aus:
    static gboolean on_expose_event(GtkWidget *widget,GdkEventExpose *event , gpointer data)
    {
    cairo_t *cr;
    cairo_pattern_t *pat1;

    cr = gdk_cairo_create(widget->window);<=== hier ist der Fehler, Field "window" couldn#t be resolved)

    Ein ähnliches Problem habe ich bei bei anderen Anweisungen: zum Beispiel
    width = var->widgets.current.draw_area->allocation.width;
    Allocation_width ist angeblich nicht bekannt (not resolved), obwohl es eine allgemeoine Eigenschaft ist.
    Hat jemand eine Idee? ich muss irgendwie vergessen haben, etwas einzubinden oder?

    Danke im Voraus

    MBoerner

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ich denke nicht dass das Problem ein fehlendes Include oder ähnliches ist.

    Gute APIs sind meistens so konstruiert das offentliche Klassen "opaque" sind, d.h. ihre Daten hinter einem internen Pointer versteckt werden und man über Zugriffsfunktionen damit arbeitet.

    Das erlaubt den Entwickler der Bibliothek im Bedarfsfall die Interna zu ändern (z.B. neue Datenfelder hinzufügen), ohne dass sich für bestehende Software etwas ändert.

    In deinem Fall wäre die Zugriffsfunktion vermutlich gtk_widget_get_window() also etwa so

    Code:
    cr = gdk_cairo_create(gtk_widget_get_window(widget));
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    24.05.2012
    Beiträge
    21

    danke, das hat geklappt

    ich hatte leider nicht gesehen, dass ich eine Antwort bekommen habe. Das war aber die Lösung.
    Danke schön!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •