|< 1 2 >| | 19 entries, 2 pages |
1
2
3
4
5
6
7
8
9
10
package MyPackage::Global;
use vars qw($ThisGlobalValue);
$MyPackage::Global::ThisGlobalValue = "irgendwas";
.....
package MyPackage::Callbacks;
sub ChangeThis {
my ($widget, $index) = @_;
$MyPackage::Global::ThisGlobalValue = $widget->value($index);
}
1
2
my $var = "1";
$parent->Button(-textvariable => \$var, -command => [ \&UpdateButton, $button, \$var]);
1
2
3
4
5
6
my $var = "1";
my $button = $parent->Button(-text => $var);
$button->configure(-command => sub {
$var = &UpdateValue($var);
$button->configure('-text' => $var)
});
Quote1.) Wie macht man verschachtelte Module (z.B. MyModule::Func::Zeugs)? Bisher habe ich nur eindimensionale Module geschrieben.
2.) Wie tut man ein Tk GUI erstellen in von einem unter-Package heraus (also nicht in main, bisher hatte ich es in der Main gemacht) und wie greift man dann auf die Widgets zu?
3.) Mir ist leider noch nicht so ganz klar was genau mit Wrapper in diesem Zusammenhang gemeint ist, auch wenn ich englisch kann.
1
2
3
4
5
6
7
8
9
10
11
#! /usr/bin/perl
use warnings;
use strict;
use Tk;
use FindBin;
use lib $FindBin;
use MyApp::Widgets;
my $mw = MainWindow->new();
my $button = MyApp::Widgets::Button($mw, 'klick', sub { $mw->destroy() });
MainLoop();
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
27
28
29
30
31
32
33
34
35
36
package MyApp::Widgets;
use warnings;
use strict;
use constant BACKGROUND_COLOR => '#bfdcc0'; # als konstante
our $StandardFont = 'Arial 12 normal'; # als "globale" variable
use vars qw($BoldFont); # ebenfalls "global"
$BoldFont = 'Arial 12 normal';
my $fixedFont = "Courier 12 normal"; # oder normale my-variable
sub Button {
my ($parent, $text, $callback, %options) = @_;
my %options2 = ();
if (defined $callback and ref $callback) {
$options2{-command} = $callback;
} # if
else {
$options2{-state} = 'disabled';
}
if (ref $text) {
$options2{-textvariable} = $text;
}
else {
$options2{-text} = $text;
}
return $parent->Button(
-background => BACKGROUND_COLOR,
-font => $StandardFont,
-paddx => 5, -pady => 4,
%options2, %options,
);
} # Button
# -----------------------------------------------------
sub Frame { ... }
#...
|< 1 2 >| | 19 entries, 2 pages |