Schrift
[thread]4703[/thread]

Waitcursor: wie ging das nochmal? (Seite 2)

Leser: 1


<< |< 1 2 >| >> 20 Einträge, 2 Seiten
Crian
 2004-01-16 17:22
#46735 #46735
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Da tut sich auch nichts, wenn ich die Maus bewege...
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
ptk
 2004-01-16 17:26
#46736 #46736
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Also nicht einmal mit diesem Miniskript?
Code: (dl )
1
2
3
4
5
6
use Tk;
$mw = tkinit;
$mw->update;
$mw->Busy;
sleep 2; # never use this in real Tk programs!
$mw->Unbusy;
Crian
 2004-01-17 01:10
#46737 #46737
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Doch, da klappt es... hmmm komisch. Ich hatte allerdings in meinem Programm den oben geposteten Parameter -recurse => 1 verwendet, könnte es daran liegen?

Ich teste das mal.

Edit: Klappt auch mit dem Parameter in Deinem Miniskript... komisch.\n\n

<!--EDIT|Crian|1074294816-->
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
eisbeer
 2004-01-17 13:42
#46738 #46738
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Komisch, also bei mir hats bis jetzt immer geklappt,
auch unter Windows.

Das -recurse => 1 definiert, das jedes Subwidget von
$widget ebenfalls "busy" wird, also das alle KeyRelease,
ButtonPress, KeyPress, ButtonRelease etc. Events
für diese Widgets ignoriert werden.

Du kannst übrigens einen eigenen Cursor definieren:
Code: (dl )
1
2
$widget->Busy(-recurse => 1,
              -cursor => WasDuWillst );


Vielleicht könntest du ja mal den Code posten, is ja
erfahrungsgemäß immer der beste Weg zur Lösung :)\n\n

<!--EDIT|eisbeer|1074339774-->
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Crian
 2004-01-19 11:00
#46739 #46739
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
hmmm der Code ist 1377 Zeilen lang... der betreffende Ausschnitt sieht so aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub tk_save () {

print "tk_save()\n" if $Config{debug};

$Config{main_window}->Busy(-recurse => 1);

speichere_aktuellen_ds();
speichere_daten();
gehe_zu($Config{Aktueller_DS});

$Config{main_window}->Unbusy;

} # sub tk_save;
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
ptk
 2004-01-19 11:33
#46740 #46740
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Crian,19.Jan..2004, 10:00]hmmm der Code ist 1377 Zeilen lang... der betreffende Ausschnitt sieht so aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub tk_save () {

print "tk_save()\n" if $Config{debug};

$Config{main_window}->Busy(-recurse => 1);

speichere_aktuellen_ds();
speichere_daten();
gehe_zu($Config{Aktueller_DS});

$Config{main_window}->Unbusy;

} # sub tk_save;
[/quote]
-recurse arbeitet nur die Kinder des angegebenen Widgets ab. Wenn also $Config{main_window} nicht dein MainWindow ist oder du mehrere MainWindows im Programm hast, werden einige Fenster von Busy() ausgespart.

Uebrigens: %Config ist als Variablenname nicht besonders gut gewaehlt, da diese Variable auch bei "use Config" verwendet wird. Solange du aber in deinen Skripten dieses Modul nicht verwendest, hast du nichts zu befuerchten.
Crian
 2004-01-19 13:47
#46741 #46741
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Hmmm... das heißt bei mir immer %Config... grmpf.
Naja, wenn ich das Modul irgendwann mal benutzen sollte, muss ich es halt ändern.

Außerdem sollte sich das mit

Code: (dl )
1
2
3
4
5
use Config ();

...

$Config::Config{...}


umgehen lassen... ich mags eh nicht, wenn mir Module den Namensraum vollmüllen ;)

Edit: main_window ist schon das, was am Anfang mit

Code: (dl )
1
2
    my $mw = new MainWindow;
$Config{main_window} = $mw;


erzeugt wurde.\n\n

<!--EDIT|Crian|1074512896-->
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
eisbeer
 2004-01-19 15:50
#46742 #46742
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
bei mir heissts immer %CFG :)
Globale Variabeln sind bei mir immer
Majuskeln, und so kurz wie möglich
gehalten. %FRM, %USR etc ...

ähm ja, also ich habe keine Ahnung,
warum das nicht klappt, sorry, ist
vielleicht ein bug ...:rock:
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Crian
 2004-01-19 21:29
#46743 #46743
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Tja hmmm... ich könnte jetzt das Programm soweit verkleinern, bis es geht und dabei vielleicht was lernen... ;)

Aber da quasi fast die ganze Oberfläche aus dem Textwidget besteht und ich diesem den Waitcursor aufdrängen kann, reicht mir das erstmal...

Je nach Lust und Zeit werd ich dem Problem aber nochmal nachgehen...
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
eisbeer
 2004-01-19 22:42
#46744 #46744
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ach das ist ein Textwidget. Damit hatte ich auch
schon Probleme, was Cursoränderungen betrifft.
Bin auch nie dahinter gekommen.
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2004-01-15 16:29.