Ticket UUID: | c92cee4740d33ccfd3f45e06cebab0bd83a9ad45 | |||
Title: | Deselect radiobutton | |||
Type: | Bug | Version: | 8.6 | |
Submitter: | anonymous | Created on: | 2018-09-15 15:39:45 | |
Subsystem: | 03. [*button] and [label] | Assigned To: | fvogel | |
Priority: | 5 Medium | Severity: | Minor | |
Status: | Closed | Last Modified: | 2019-09-02 18:21:09 | |
Resolution: | Invalid | Closed By: | fvogel | |
Closed on: | 2019-09-02 18:21:09 | |||
Description: |
frame .t pack .t set reptype 0 radiobutton .t.r1 -text "1" -variable reptyp -value 1 radiobutton .t.r2 -text "2" -variable reptyp -value 2 radiobutton .t.r3 -text "3" -variable reptyp -value 3 radiobutton .t.r4 -text "4" -variable reptyp -value 4 radiobutton .t.r5 -text "5" -variable reptyp -value 5 radiobutton .t.r6 -text "6" -variable reptyp -value 6 bind .t.r1 <Double-1> {Chk_Alone $reptyp} bind .t.r2 <Double-1> {Chk_Alone $reptyp} bind .t.r3 <Double-1> {Chk_Alone $reptyp} bind .t.r4 <Double-1> {Chk_Alone $reptyp} bind .t.r5 <Double-1> {Chk_Alone $reptyp} bind .t.r6 <Double-1> {Chk_Alone $reptyp} grid .t.r1 grid .t.r2 grid .t.r3 grid .t.r4 grid .t.r5 grid .t.r6 proc Chk_Alone {args} { global reptyp #tk_messageBox -message "unselected" after idle [list .t.r$args deselect ] } #is a short exemple deselect not work, work only if tk_message is not a comment | |||
User Comments: |
fvogel added on 2019-09-02 18:21:09:
I don't think there is a bug here. The radiobutton is set upon <ButtonRelease> event, and this fires before or after the idle command depending on the presence of the tk_messageBox that precedes it. 1. With: proc Chk_Alone {args} { global reptyp puts IN after idle [list .t.r$args deselect ; puts DONE] puts OUT } Sequence of events: <Button-1> <ButtonRelease> <Double-1> IN DONE OUT <ButtonRelease>
2. With: proc Chk_Alone {args} { global reptyp puts IN tk_messageBox -message "unselected" after idle [list .t.r$args deselect ; puts DONE] puts OUT } Sequence of events: <Button-1> <ButtonRelease> <Double-1> IN <ButtonRelease> DONE OUT
To achieve what you seem to want, you can remove the tk_messageBox and use 'after 0' instead of 'after idle'. bll added on 2018-09-16 16:52:37: See also: http://core.tcl.tk/tcl/info/7f08437314ca213f bll added on 2018-09-16 15:37:05: Well, crap. I automatically look at ttk::radiobutton. Force of habit. Sorry. fvogel added on 2018-09-16 15:30:02: http://www.tcl.tk/man/tcl8.6/TkCmd/radiobutton.htm#M23 bll added on 2018-09-16 15:09:40: Oh, really? Which manual page are you finding that in? What version? I see no deselect. fvogel added on 2018-09-16 15:02:56: deselect definitely is a documented and supported command for radiobuttons. That said I have no idea about what the OP strives to achieve. It is far from obvious there is a bug here. Best would have been to post this question on comp.lang.tcl first. bll added on 2018-09-15 18:05:18: deselect is not a supported command. Just set reptype to 0. |