| Deutsch English Français Italiano |
|
<v6obf4$2dlc7$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: greg <gregor.ebbing@gmx.de>
Newsgroups: comp.lang.tcl
Subject: Re: How to do callbacks to methods
Date: Thu, 11 Jul 2024 12:17:08 +0200
Organization: A noiseless patient Spider
Lines: 62
Message-ID: <v6obf4$2dlc7$1@dont-email.me>
References: <CF2dndaVPsTAEBL7nZ2dnZfqn_YAAAAA@brightview.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 11 Jul 2024 12:17:09 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="9be51c00966dfec898df4c40cc697fc1";
logging-data="2545031"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Ac+ALPEnFbhiyArQ8EyGnzpW9xdGLggE="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:a5fWIwN7ozKr5jyzuanbQkz9FKc=
Content-Language: de-DE
In-Reply-To: <CF2dndaVPsTAEBL7nZ2dnZfqn_YAAAAA@brightview.co.uk>
Bytes: 2611
Am 11.07.24 um 09:44 schrieb Mark Summerfield:
> In the app below none of the callbacks works, neither in the bind calls
> nor the -command. I am using Tcl/Tk 9.0b2 on Linux. How can I make these
> callbacks work?
>
> #!/usr/bin/env wish9
> tk appname "Test App"
> oo::class create App {
> constructor {} {
> wm withdraw .
> wm title . [tk appname]
> grid [ttk::button .quitButton -text Quit -underline 0 \
> -command {my on_quit}]
> bind <Escape> {my on_quit}
> bind <Alt-q> {my on_quit}
> }
> method on_quit {} {
> destroy .
> }
> method show {} {
> wm deiconify .
> raise .
> }
> }
> set application [App new]
> $application show
Hello,
solution: callback
https://www.tcl.tk/man/tcl9.0/TclCmd/callback.html
package require Tk
# helpers proc for 8.6
#proc ::oo::Helpers::callback {method args} {
# list [uplevel 1 {namespace which my}] $method {*}$args
#}
#https://www.tcl.tk/man/tcl9.0/TclCmd/callback.html
tk appname "Test App"
oo::class create App {
constructor {} {
wm withdraw .
wm title . [tk appname]
grid [ttk::button .quitButton -text Quit -underline 0 \
-command [callback on_quit]]
bind <Escape> [callback on_quit]
bind <Alt-q> [callback on_quit]
}
method on_quit {} {
destroy .
}
method show {} {
wm deiconify .
raise .
}
}
set application [App new]
$application show