Sujet : Re: How to do callbacks to methods
De : gregor.ebbing (at) *nospam* gmx.de (greg)
Groupes : comp.lang.tclDate : 11. Jul 2024, 11:17:08
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v6obf4$2dlc7$1@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
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.htmlpackage 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.htmltk 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