Thread wxPerl - SplashScreen (9 answers)
Opened by JVBSOFT at 2013-06-12 13:50

JVBSOFT
 2013-06-12 13:50
#168111 #168111
User since
2013-01-19
16 Artikel
BenutzerIn

user image
Hallo alle zusammen !!!

Ich habe folgenden Problem:

Ich möchte in einem wxPerl-Programm einen SplashScreen einbinden. Das funktioniert im Grundsatz auch recht gut ( Wx::Perl::SplashFast oder Wx::SplashScreen) aber beiden fehlen zwei für mich wichtige Dinge !!!

Ich möchte analog dem Tkx::SplashScreen:
1. bestimmte Subroutinen aufrufen, die z.B. die Verfügbarkeit des Internets prüfen, Informationen zum System sammeln usw.
2. eine ProgresBar einbinden, die dem Nutzer anzeigt wie weit diese Starttests des Programms bereits sind.

Wie kann man so etwas mit Wx lösen ???

Vielen Dank im Voraus für die Hinweise !!!!

Hier mal noch ein Beispiel, das den Wunsch in Tkx zeigt

Code: (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
sub splash_screen {

Tkx::package_require('img::gif');

my $top = Tkx::widget->new(q{.});
$top->g_wm_withdraw();

my $splash = $top->new_tkx_SplashScreen(
-image => 'kv_gif_obj',
-width => 'auto',
-height => 'auto',
-show => 1,
-topmost => 1,
);

my $canvas = $splash->canvas();
$canvas->create_text( 110, 20, -text => 'ZUGANG', -fill => 'blue', );
my ( $w, $h ) = ( $canvas->cget( -width ) / 100, $canvas->cget( -heigh ) - 20 );
_progress_bar( $canvas, $h, $w * 33 );
Tkx::after( 1000 => sub { _progress_bar( $canvas, $h, $w * 66 ); } ;

# --- Online-Verbindung testen
$OS{onlinetest} = online_test_via_http(%PROXY);
Tkx::after( 5000 => sub { _progress_bar( $canvas, $h, $w * 100 ); } );

# --- Prüfen ob Updates vorhanden sind
if ( $OS{onlinetest} == 1 ) { ( $OS{updatetest}, $OS{updatetext} ) = update_test( $VERSION, $UPDATE, %PROXY );
}
else {
$OS{updatetest} = q{};
}
Tkx::after( 8000 => sub { $splash->g_destroy(); $top->g_wm_deiconify(); });

return;

}

sub _progress_bar {

my ( $canvas, $h, $w ) = @ARG;

$canvas->create_line( 0, $h, $w, $h, -fill => 'green', -width => 20 );
Tkx::update();

return;

}

View full thread wxPerl - SplashScreen