Schrift
[thread]10531[/thread]

gif.bilder in tk einbinden

Leser: 1


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
simon78
 2007-10-06 22:18
#100429 #100429
User since
2007-09-26
11 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

wie kann ich mit perl/tk eine Datei .gif einbinden?
Ich will links oben zwischen dem Button und der Name "England" eine Datei .gif einbinden (das gilt auch für der zweite Button, also vor dem Wort Oesterreich).
Danke im voraus.
-------------------------------------------------------------
# !/bin/perl -w

use Tk;

#
# Hauptfenster:
#
my $mw = MainWindow->new();

$mw->title('Ein Test');

my $fo = $mw->Frame()->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
#
# Checkbuttons:
#
my $f1 = $fo->Frame(-borderwidth => 3,
-relief => 'groove',
)
->pack(-side => 'right',
-expand => 1,
-fill => 'both',
);

#
# Radiobuttons1:
#


my $f2 = $fo->Frame(-label => 'Name auswaelen',
-borderwidth => 3,
-relief => 'groove',
)
->pack(-side => 'right',
-expand => 1,
-fill => 'both',
);

my @Name = ('test1',
'test2',
);
my $Namen = 0;
for my $i (0..$#Name) {
$f2->Radiobutton(-text => $Name[$i],
-variable => \$Namen,
-value => $i,
)
->pack(-anchor => 'w');
}

#
# Radiobuttons2:
#
my $f3 = $fo->Frame(-label => 'MY TEST',
-borderwidth => 3,
-relief => 'groove',
)
->pack(-side => 'right',
-expand => 1,
-fill => 'both',
);

my @Landliste = ('England',
'Oesterreich',
);
my $Land = 0;
for my $i (0..$#Landliste) {
$f3->Radiobutton(-text => $Landliste[$i],
-variable => \$Land,
-value => $i,
)
->pack(-anchor => 'w');
}

#
# OK-Button:
#
$mw->Button(-text => 'OK',
-command => sub { print $mw->destroy();
},
)
->pack(-side => 'bottom',
-expand => 0,
-fill => 'none',
-ipadx => 20,
-pady => 2,
);

MainLoop();
-------------------------------------------------------------
ptk
 2007-10-06 23:00
#100431 #100431
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Code: (dl )
$mw->Label($mw->Photo(-file => "....gif"))->pack;
simon78
 2007-10-06 23:30
#100432 #100432
User since
2007-09-26
11 Artikel
BenutzerIn
[default_avatar]
Hallo ptk,

danke für die schnelle antwort.
Ich bin leider noch ein Anfänger mit tk...deshalb kannst du mir bitte sagen wo genau ich die Zeile $mw->Label($mw->Photo(-file => "....gif"))->pack; einfügen muss?

Vielen dank.
ptk
 2007-10-07 00:34
#100434 #100434
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Das funktioniert nach dem selben Prinzip, wie du die anderen Widgets erzeugst hast.
Da du wahrscheinlich Bild und Radiobutton horizontal anordnen möchtest, pack() aber nur in einer Richtung funktioniert (bei den Radiobuttons vertikal), musst du wahrscheinlich noch Hilfs-Frames einfügen.
ptk
 2007-10-09 00:09
#100527 #100527
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[verschoben]
simon78
 2007-10-09 21:55
#100579 #100579
User since
2007-09-26
11 Artikel
BenutzerIn
[default_avatar]
Ich habe echt keine Ahnung wie es geht.
Kann jemand den gesamten Code schreiben?

Danke im Voraus.
renee
 2008-01-06 12:54
#104443 #104443
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/perl

use strict;
use warnings;
use Tk;
use Tk::Photo;

my $mw = tkinit;

my @Landliste = (
    ['England', 'shop_cart.gif'],
    ['Oesterreich', 'shop_cart.gif'],
);
my $Land = 0;

for my $i (0..$#Landliste) {
    my $photo = $mw->Photo( -file => $Landliste[$i]->[1] );
    $mw->Radiobutton(-text => $Landliste[$i]->[0],
        -variable => \$Land,
        -value    => $i,
        -image    => $photo,
        -compound => 'left',
    )->pack(-anchor => 'w');
}

MainLoop;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-01-20 17:14
#104934 #104934
Guten Tag, ich bin über Google auf diesen Thread hier gestoßen und habe auch Probleme mit dem einbinden von Bildern in Perl-Tk.

Hier mal das Wesentliche meines Codes:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
use Tk;
use Tk::Photo;

my $fenster = MainWindow -> new();
my $photo = $fenster -> Photo (-data => "/home/xxx/logo.gif");

$fenster -> Label(-image => $photo) -> pack();

MainLoop();


Beim Ausführen bekomme ich aber jedes mal den Fehler:
couldn't recognize image data at /usr/lib/perl5/Tk/Image.pm line 21

Dabei habe ich es auch schon mit jpg und anderen Pfaden versucht.
Im Internet fand ich etwas, dass man das Bild Base64 codieren sollte um
solche Fehler zu vermeiden, jedoch hab ich keine Ahnung wie und wo ich
das genau integrieren soll, habe es aber schon versucht bei der Variable
$photo und es hat nichts gebracht.

Danke schonmal für eure Hilfe.
Struppi
 2008-01-20 18:24
#104938 #104938
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
my $photo = $fenster -> Photo (-file=> "/home/xxx/logo.gif");
Gast Gast
 2008-01-20 18:40
#104940 #104940
Struppi+2008-01-20 17:24:53--
my $photo = $fenster -> Photo (-file=> "/home/xxx/logo.gif");


Macht leider keinen Unterschied, mit "file" bekomme ich den gleichen Fehler.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2007-10-06 22:18.