Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5092[/thread]

Tk::ProgressBar (Seite 2)

Leser: 3


<< |< 1 2 3 >| >> 28 Einträge, 3 Seiten
renee
 2005-09-28 17:53
#44664 #44664
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Na gut, dann muss ich mir mal was überlegen...
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/
Crian
 2005-09-29 16:40
#44665 #44665
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Normalerweise benutzt man einen Fortschrittsbalken nur bei Prozessen, bei denen man selbst zwischenzeitlich den Fortschritt angeben kann.

In Deinem Fall würd ich einfach die Sanduhr anschmeißen. Kannst Du denn überhaupt im Parser entscheiden, wie weit Du schon bist?

Ist der Parser von Dir?
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
Strat
 2005-09-29 17:10
#44666 #44666
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn man beim progressbar nicht festlegen kann, wie lange etwas braucht, dann kann man ihn ja fuellen, leeren, erneut befuellen, leeren usw. dann glaubt der user wenigstens, dass da noch was vorangeht und wartet (auch wenn er nach dem ersten durchlauf enttaeuscht ist). aber bei sowas verwende ich auch lieber die sanduhr...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2005-09-30 09:33
#44667 #44667
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich glaube, ich werde die Sanduhr benutzen. Der Parser stammt nicht von mir, deshalb wüsste ich auch nicht, wo ich was einsetzen muss...

Da ich nicht weiß, wie weit der Parser ist, hätte ich es genau so gemacht wie Strat es beschrieben hat...
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/
ptk
 2005-10-10 19:38
#44668 #44668
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Strat,28.09.2005, 15:11]Problem mit dem sleep? Gab's da nicht mal ein Tk::sleep? [/quote]
Leider nicht, aber du kannst folgendes verwenden:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
=head2 tk_sleep

=for category Tk

$top->tk_sleep($s);

Sleep $s seconds (fractions are allowed). Use this method in Tk
programs rather than the blocking sleep function. The difference to
$top->after($s/1000) is that update events are still allowed in the
sleeping time.

=cut

sub Tk::Widget::tk_sleep {
my($top, $s) = @_;
my $sleep_dummy = 0;
$top->after($s*1000,
sub { $sleep_dummy++ });
$top->waitVariable(\$sleep_dummy)
unless $sleep_dummy;
}
Kean
 2008-05-08 19:34
#109457 #109457
User since
2004-08-18
464 Artikel
BenutzerIn

user image
Ich habe ein ähnliches Problem. Ich nutze das Modul Imager um ein Bild zu verändern und das dauert unter umständen ziemlich lange.
Wie kann ich am einfachsten eine Sanduhr einsetzen?
moritz
 2008-05-08 20:02
#109459 #109459
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Kean+2008-05-08 17:34:12--
Ich habe ein ähnliches Problem. Ich nutze das Modul Imager um ein Bild zu verändern und das dauert unter umständen ziemlich lange.
Wie kann ich am einfachsten eine Sanduhr einsetzen?


Code (perl): (dl )
1
2
3
$window->configure(-cursor => $neuer_cursor);
$window->idletaks; # braucht man, damit der Cursor
# sofort geändert wird


Ich habe leider nur vergessen, was der Name des Sanduhr-Cursors und des Defaults ist.
Kean
 2008-05-09 12:38
#109476 #109476
User since
2004-08-18
464 Artikel
BenutzerIn

user image
Also die Sanduhr heisst "watch" und der normale Cursor heisst "arrow".

Leider funktioniert der Befehl

Code (perl): (dl )
$mw->idletaks;


nicht. Hier kommt folgende Fehlermeldung:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
Tk::Error: Failed to AUTOLOAD 'MainWindow::idletaks' at c:\Dokumente und Einstel
lungen\User\Desktop\test3.pl line 154
Carp::croak at C:/Perl/lib/Carp.pm line 44
Tk::Widget::__ANON__ at C:/Perl/lib/Tk/Widget.pm line 347
main::NewPicture at c:\Dokumente und Einstellungen\User\Desktop\test3.pl li
ne 154
main::SelectFile at c:\Dokumente und Einstellungen\User\Desktop\test3.pl li
ne 140
Tk callback for .button
Tk::__ANON__ at C:/Perl/lib/Tk.pm line 252
Tk::Button::butUp at C:/Perl/lib/Tk/Button.pm line 111
<ButtonRelease-1>
(command bound to event)


Er ändert dann zwar den Cursor ab, aber er führt den nachfolgenden Code nicht aus.
moritz
 2008-05-09 12:41
#109477 #109477
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Ich hab mich verschrieben, das müsste 'idletasks' heissen.
Kean
 2008-05-09 13:52
#109482 #109482
User since
2004-08-18
464 Artikel
BenutzerIn

user image
Jetzt bringt er zwar keine Fehlermeldung mehr, aber es funktioniert auch leider nicht.

Hier mal mein Code:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sub NewPicture
{
$mw->configure(-cursor => "watch");
$mw->idletasks;
zoom();
rotate();
                
$canvas->delete("picture");
$image_in = $canvas->Photo( -file       => $file_use, -format => $image_format );
if ($image_in->height() < 200 || $image_in->width() < 166)
        {
        $statuslbl->configure(-text=>"Das ausgewählte Foto ist zu klein!!");
        return;
        }
$picture = $canvas->createImage(0,0,-image => $image_in, -anchor => "nw", -tags => "picture");
$canvas->raise("rectangle", "all");
$mw->configure(-cursor => "arrow");
}
<< |< 1 2 3 >| >> 28 Einträge, 3 Seiten



View all threads created 2005-09-28 15:40.