Thread [Tk] Progressbar 'wandert' durch Cursortasten (2 answers)
Opened by Molaf at 2013-11-07 13:44

Molaf
 2013-11-07 13:44
#171888 #171888
User since
2007-10-11
119 Artikel
BenutzerIn
[default_avatar]
Hallo allerseits,

ich nutze grade wieder Tk für ein Programm mit GUI.
Das Ding hat viele Entrys, mit denen man am besten mit TAB und Shift+TAB hin und her navigiert. Unter den Entrys ist ein Progressbar. Kriegt das versehentlich den Fokus, kann man den Balken mit den Cursor-Tasten links/rechts verschieben. Zur Ansicht:
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 5.010;
use strict;
use warnings;
use Time::HiRes 'time';
use Tk;
use Tk::ProgressBar;
my $data = 0;
my $mw   = MainWindow->new;
$mw->Entry( -text => 'blah' )->pack;
$mw->Entry( -text => 'krams', -bg => 'grey80' )->pack;
my $progressbar = $mw->ProgressBar(
    -from     => 0,
    -to       => 400,
    -variable => \$data,
    -width    => 6,
    -length   => 100,
    -blocks   => 100,
    -colors   => [ 0, 'green' ],
)->pack;
my $button = $mw->Button( -text => 'x' )->pack;

$mw->repeat( 10, sub { $data = time*1000 % 400; } );

MainLoop;

Jetzt die Frage: Kann man das verhindern?
Meine Versuche waren bisher, den '<FocusIn>' mit einem bind des Progressbars einzufangen und den Fokus gleich weiterzugeben, dummerweise scheint kein bind-Event auszulösen (über eine Schleife alle mal zugeordnet).

Der nächste Schritt wird dann sein, Tk::Progressbar rauszuwerfen und durch was eigenes zu ersetzen. Lieber wäre mir natürlich das fertige Modul weiterverwenden zu können.

System ist WinXP, Tk ist 804.028

View full thread [Tk] Progressbar 'wandert' durch Cursortasten