Font
[thread]4747[/thread]

Toplevel Window wird nicht angezeigt: Perl: Tk, Toplevel



<< |< 1 2 >| >> 13 entries, 2 pages
quetzalcoatl
 2004-04-01 16:12
#41864 #41864
User since
2004-04-01
51 articles
BenutzerIn
[default_avatar]
Hallo,

erstmal vielen Dank für die sehr gelungene HowTo! :)

Hab nun ein kleines Problem:

Ich hab ein Programm mit mehreren Unterfunktionen, bei den aber leider kein Toplevel Window angezeigt wird.

hier mal ein kleiner ausschnitt dazu:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
# Main Window mit dem Titel "Xfbsuite" erstellen:
my $main = MainWindow->new(-title => "Xfbsuite");
my $lable = $main->Label(-text=>"Auswahl")->pack();

# Zwei Frames erstellen (hframe, frm1):

my $hframe= $main->Frame()->pack(-side=>'top', -expand=>1, -fill=>'both');

my $frm1 = $hframe->Frame(-borderwidth=>1, -relief=>'groove')->pack(-side=>'left', -expand=>1, -fill=>'both');

$frm1->Button(-text => 'RAM',-underline => 0,-command=>sub{ ram() } )->pack(-side=>'top', -ipadx => $ipadx, -ipady=> $ipady, -pady=> $pady, -padx=>$padx);

MainLoop();

so, weiter unten eben die "ram()" funktion:
Code: (dl )
1
2
3
4
5
6
7
8
$topw = $main->Toplevel(); 
$label = $topw->Label(-text => "Hallo")->pack();
$close = $topw->Button(-text => "Close",-command => sub { $topw-> destroy() })->pack;
$topw->Entry()->pack();
$topw->Popup();
......
weiterer code..
.......


Seltsamerweise überspringt er einfach den Code mit dem Toplevel Window - und geht einfach weiter zum "weiterere Code...".

Jemand vielleicht ne idee? Ich probier da nun schon "ewig" rum (seit gestern mittag) - und komm aber nicht dahinter. Hab auch schon die "MainLoop()" Funktion ganz ans Ende des Skriptes gesetzt (selber effekt), das Toplevel Window von dem ersten frame ausgehen lassen...usw. Ich weiß echt nicht was ich noch versuchen könnte. :(

Wenn jemand noch ne idee hat - würde mich riesig freuen.
Danke!

Gruss,
quetzalcoatl
Robby
 2004-04-01 16:45
#41865 #41865
User since
2003-08-11
409 articles
BenutzerIn
[default_avatar]
also wenn ich den Button RAM drücke kommt das Toplevel-Fenster mit Label, Button und Eingabe Box. Beim drücken des Knopfes schliesst es sich wieder....

Habe
- Perl 5.6.0
- Windows 2000
- Tk 800.022

Was hast Du?
Oder püoste ma lmehr vom Code, evtl geht darunter was schief....
Kaum macht man es richtig - schon funktioniert es!
quetzalcoatl
 2004-04-01 18:24
#41866 #41866
User since
2004-04-01
51 articles
BenutzerIn
[default_avatar]
vielen Dank für die schnelle Antwort! :)

also, ich hatte glaub ich ein verständnis Problem mit Tk.

ich hab nun den besagten Teil, (die RAM Funktion) in eine extra Funktion ausgelagert. Da ja anscheinend Tk, nicht wartet bis sein Toplevel Fenster wieder weg ist, sondern das Toplevel Fenster anzeigt und dann einfach im Perl Code weiter macht.

Jetzt lass ich beim Hauptfenster die Funktion Ram aufrufen - die wiederrum ein Toplevel Fenster darstellt und nach Eingabe und Enter, die eigentliche Perl Funktion aufruft, somit wartet er wenigstens bis ich im Toplevel Fenster was ausgewählt habe (bzw. eingegeben habe) und macht dann im Code weiter.


Gruss,
quetzalcoatl

Perl: 5.8.1
Gentoo Linux (2.6.4)
Tk 8..xx
Crian
 2004-04-01 20:04
#41867 #41867
User since
2003-08-04
5867 articles
ModeratorIn
[Homepage]
user image
[quote=quetzalcoatl,01.04.2004, 14:12]erstmal vielen Dank für die sehr gelungene HowTo! :)[/quote]
Meinst Du das Tutorial im Wiki? Oder worauf bezieht sich das?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
quetzalcoatl
 2004-04-01 21:06
#41868 #41868
User since
2004-04-01
51 articles
BenutzerIn
[default_avatar]
[quote=Crian,01.April.2004, 18:04][quote=quetzalcoatl,01.04.2004, 14:12]erstmal vielen Dank für die sehr gelungene HowTo! :)[/quote]
Meinst Du das Tutorial im Wiki? Oder worauf bezieht sich das?[/quote]
ja,
fand ich sehr verständlich erklärt - auch wenn mir ein paar Einzelheiten gefehlt haben (welche genau weiß ich jetzt grad auch nicht mehr - muss nochmal nachsehen).

Gruss,
quetzal\n\n

<!--EDIT|quetzalcoatl|1080839224-->
format_c
 2004-04-01 23:08
#41869 #41869
User since
2003-08-04
1706 articles
HausmeisterIn
[Homepage] [default_avatar]
Also den Ausdruck sub { ram() } fand ich nicht besonders schön.
Nimm doch in diesem Fall Callbacks \&ram anstatt Closures.

Gruß Alex
quetzalcoatl
 2004-04-02 02:29
#41870 #41870
User since
2004-04-01
51 articles
BenutzerIn
[default_avatar]
[quote=format_c,01.April.2004, 21:08]Also den Ausdruck sub { ram() } fand ich nicht besonders schön.
Nimm doch in diesem Fall Callbacks \&ram anstatt Closures.

Gruß Alex[/quote]
ja, vielen dank - ich habs vorhin zum erstenmal gelesen das es so auch geht *schäm*.
Ich sollte wirklich mal das dicke perl kochbuch lesen :)

Gruss,
quetzal
Crian
 2004-04-02 03:00
#41871 #41871
User since
2003-08-04
5867 articles
ModeratorIn
[Homepage]
user image
[quote=quetzalcoatl,01.04.2004, 19:06][quote=Crian,01.April.2004, 18:04][quote=quetzalcoatl,01.04.2004, 14:12]erstmal vielen Dank für die sehr gelungene HowTo! :)[/quote]
Meinst Du das Tutorial im Wiki? Oder worauf bezieht sich das?[/quote]
ja,
fand ich sehr verständlich erklärt - auch wenn mir ein paar Einzelheiten gefehlt haben (welche genau weiß ich jetzt grad auch nicht mehr - muss nochmal nachsehen).

Gruss,
quetzal[/quote]
Ah danke :)

Wenn Dir noch was einfällt sag ruhig bescheid, ich muss da sowieso irgendwann nochmal ran, die ganzen Linuxbilder sind ja bisher nur versprochen aber noch nicht gemacht... ;)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
quetzalcoatl
 2004-04-02 12:00
#41872 #41872
User since
2004-04-01
51 articles
BenutzerIn
[default_avatar]
zb. was ich ganz nett fände ( hab ich letztens auf irgendeiner seite gesehen), wenn man ein Feld hätte, bei dem die Buttonseigenschaft "-relief XX"dargestellt ist, hatte es gestern erst - musst mir dann (was natürlich nicht der riesenaufwand ist), selber ein kleines ding basteln, bei dem ich die verschiedenen unterschiede gesehen hab.

Was mir mir auch abging - die Eigenschaft "-background wurd leider nicht behandelt - bei mir geht es z.b. mit "-background=>'darkgreen'" nicht - da beschwert er sich das es kein nummerischer wert sei. Nach ein bisschen googlen hatte ich dann das passende Format.

Edit: doch noch was eingefallen:

sind eigentlich Keybindings drinnen?
und: Bilder bzw. Icons (in Buttons o.ä.).

Mal sehen was mir sonst noch einfällt :-D

Gruss,
quetzal\n\n

<!--EDIT|quetzalcoatl|1080893106-->
Crian
 2004-04-02 12:19
#41873 #41873
User since
2003-08-04
5867 articles
ModeratorIn
[Homepage]
user image
Nach den 1000 Darstellungen der Reliefarten in "Einführung in Perl/Tk" wollte ich die nicht auch noch bringen... aber na gut, einmal könnte man das zeigen.

Ich seh schon, einige Dinge seh ich einfach nicht, weil ich sie schon als so normal erachte, dass ich meinte nicht darauf eingehen zu müssen... ich werde da mal nachbessern, wenn ich Zeit habe (könnte dauern...).

Zu den Keybindings und fortgeschrittenen Dingen wollte ich eigentlich noch Folgekapitel schreiben...

... aber letzendlich soll es wirklich nur eine EInführung sein und kein Komplettkurs. Allerdings ist es ja ein Wiki, und wenn wir es mit der Zeit zu einem Komplettkurs ausbauen, soll mir das auch sehr recht sein :)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 13 entries, 2 pages



View all threads created 2004-04-01 16:12.