Schrift
[thread]4713[/thread]

Schließen Funktion in der Kopfzeile deaktivieren!: Perl-Tk



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Schlampie
 2004-02-04 15:28
#46822 #46822
User since
2003-09-02
36 Artikel
BenutzerIn
[default_avatar]
Wie kann ich die Schließen Funktion in der Kopf(Titel-)zeile eines Toplevels deaktivieren? Ich will aber nicht die ganze Kopfzeile verschwinden lassen!

Vielen Dank für jede Antwort!

Mfg
Markus
Crian
 2004-02-04 15:54
#46823 #46823
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Du kannst die ganze Kopfzeile verschwinden lassen.

$mw->overrideredirect(1);

Edit:

[quote=Schlampie,04.02.2004, 14:28]Ich will aber nicht die ganze Kopfzeile verschwinden lassen![/quote]

Ups ... :-}

[quote=Schlampie,04.02.2004, 14:28]Vielen Dank für jede Antwort![/quote]

Naja, dies ist auch eine Antwort ;)\n\n

<!--EDIT|Crian|1075903021-->
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-02-04 17:12
#46824 #46824
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Mit
Code: (dl )
$mw->protocol("WM_DELETE_WINDOW" => sub { }) 
kann man die Funktionalitaet deaktivieren, aber der Close-Button ist noch immer da.
Schlampie
 2004-02-04 17:19
#46825 #46825
User since
2003-09-02
36 Artikel
BenutzerIn
[default_avatar]
Danke! :D ;)
eisbeer
 2004-02-04 21:49
#46826 #46826
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
auf ptks weise kannst du in der Sub natürlich
auch eine abfrage machen, z.B. einen Alert
bringen "Wollen sie wirklich schliessen?" und
eine positive antwort dann dem interpreten
mit return 1; melden, andernfalls natürlich
return 0;

JFYI ;)
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Crian
 2004-02-05 11:35
#46827 #46827
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ja, etwa so:

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
#!/usr/bin/perl
use strict;
use Tk;

my $mw = MainWindow->new();
$mw->protocol('WM_DELETE_WINDOW', \&ExitApplication);
MainLoop();

sub ExitApplication {
   # Prepare dialog yes|no
   my $dialog = $mw->Dialog(-text => 'Do you really want to quit?',
                            -bitmap => 'question',
                            -title => 'Quit?',
                            -default_button => 'Yes',
                            -buttons => [qw/Yes No/],
                           );

   my $answer = $dialog->Show(); # and display dialog
   if ($answer =~ /y/i){
       # maybe do some cleaning up and
       exit;
   }
   else {
       # continue
   }

} # sub ExitApplication


(Vgl. http://www.duehl.de/christian/perl/perlmain.html#tktippnoclose oder Strats Seite)

Edit: Ich ersehe gerade aus Eisbeers Beitrag, dass man statt dem exit wohl return 1 und statt dem # continue ein return 0?! Stimmt das? Muss ich bei Gelegenheit mal ausprobieren.\n\n

<!--EDIT|Crian|1075973914-->
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-02-05 13:27
#46828 #46828
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du hattest schon recht, am besten macht
man es mit exit 1; und bei allem anderen
einfach irgendwas returnen ...
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Crian
 2004-02-05 15:33
#46829 #46829
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Vielleicht sollte man nocht ein $mw->destroy(); vor das exit setzen?! Aber es destroyed sich auch so...
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-02-05 15:55
#46830 #46830
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Crian,05.Feb..2004, 14:33]Vielleicht sollte man nocht ein $mw->destroy(); vor das exit setzen?! Aber es destroyed sich auch so...[/quote]
Tk ueberschrteibt CORE::exit durch Tk::exit, welches alle existierenden MainWindows zerstoert. Das ist auch der Grund, warum man in einem geforkten Kindprozess CORE::exit oder zurzeit leider POSIX::_exit verwenden soll.
Crian
 2004-02-06 10:22
#46831 #46831
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
D.h. also, man kann es reinschreiben, aber durch das exit würden sie eh zerstört, wenn ich das richtig verstanden habe?!
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
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2004-02-04 15:28.