Forum Programmation.perl Gtk::Image

Posté par  .
Étiquettes : aucune
0
8
sept.
2005
Je utilise le module de Gtk2 de perl sous linux ( mandrake 10 ) .

Je souhaite créer un graphique histogramme ou camembert, je pense qu'il faut utiliser Gtk::Image mais je n'ai trouvé aucune documentation sur ce module.

J'ai besoin de tracer une ligne, un rectangle plein et une ellipse


Merci de votre aide
  • # canvas

    Posté par  . Évalué à 1.

    j'utilise gtk avec python, et d'après mon expérience, je dirais que Gtk::Image (si il s'agit de la même classe que gtk.Image) ne sert qu'à afficher des images.
    pour dessiner, il faut voir vers le canvas de gnome, Gnome2::Canvas.
  • # Meuh

    Posté par  (site web personnel) . Évalué à 3.

    Il faut que tu utilises Gtk2::DrawingArea. Regarde la doc pour ce widget mais voici un point de départ :

    #!/usr/bin/perl -w

    use strict;
    use Gtk2 '-init';

    my $window = Gtk2::Window->new( 'toplevel' );
    $window->signal_connect( 'delete_event' => sub { $window->destroy } );
    $window->signal_connect( 'destroy' => sub { Gtk2->main_quit } );

    my $vb = Gtk2::VBox->new;
    $vb->add( my $da = Gtk2::DrawingArea->new );
    $da->set_size_request( 100, 100 );
    $vb->add( my $bt = Gtk2::Button->new( "meuh" ) );
    $bt->signal_connect( 'clicked' => sub { $window->destroy } );

    $window->add( $vb );


    $da->signal_connect( 'expose-event' => sub {
        my $alloc = $da->allocation;
        $da->window->draw_line( $da->style->fg_gc( $da->state ),
            30, 30, 80, 60 );
        $da->window->draw_rectangle( $da->style->fg_gc( $da->state ), 1,
            5, 50, 20, 40 );
        $da->window->draw_arc( $da->style->fg_gc( $da->state ), 0,
            5, 5, $alloc->width, $alloc->height,
            8 * 360, 16 * 360 );
    } );


    $window->show_all;
    Gtk2->main;
    • [^] # Re: Meuh

      Posté par  . Évalué à 1.

      Merci beaucoup

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.