我想在某些情况下禁用组合框的MouseWheel事件,所以我使用下面的示例代码:
ttk::combobox .cb -values {a b c}
bind .cb <MouseWheel> break
pack .cb
该代码在Windows下可以正常使用,但在Linux中不起作用,而且tcl / tk版本相同,如何修改它并在Linux中正常工作?
答案 0 :(得分:1)
在X11上,鼠标滚轮被映射到(伪)按钮事件<ButtonPress-4>
和<ButtonPress-5>
而不是<MouseWheel>
,因为在X11中实际上没有这样的事件(与Windows或OSX不同) )。
if {[tk windowingsystem] eq "x11"} {
bind .cb <4> break
bind .cb <5> break
} else {
bind .cb <MouseWheel> break
}