python – 用于水平边缘滚动的Tkinter事件(在Linux中)是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 用于水平边缘滚动的Tkinter事件(在Linux中)是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1724字,纯文字阅读大概需要3分钟。
内容图文
![python – 用于水平边缘滚动的Tkinter事件(在Linux中)是什么?](/upload/InfoBanner/zyjiaocheng/951/5beae5d8ccc74dcdbfdf6ca8c45e3cf5.jpg)
我有一个带滚动条的Python Tkinter Text小部件.我想定义自己的方法在笔记本电脑的触摸板上使用水平边缘滚动.但是,我不知道允许我这样做的事件名称.垂直事件工作正常(按下shift并使用垂直边缘滚动进行水平滚动也是如此).我正在寻找什么活动名称?它们似乎不是“< Button-6>”和“< Button-7>”,因为这些会给出错误;例如
_tkinter.TclError:非键事件的指定keysym“6”
我不确定“< Button-6>”是什么与钥匙有关,但没关系.
我正在使用Linux(我说这是因为垂直滚动的事件在Linux上与Windows不同).我知道如何从按键中发现未知的事件名称,但我也不确定如何使用触摸板.
查看“文本”窗口小部件的事件列表似乎并不特别有见地(除此之外我没有看到类似于水平鼠标滚轮的事件).
我在Linux上使用Python 3.5.3(Xubuntu 17.04,64位).
解决方法:
我调查了与打印一般事件相关的代码,为按钮按下(不仅仅是按键)制作了代码,我看到了event.num用于水平鼠标滚轮.所以,我做了以下解决方案:
我不认为有水平鼠标滚动的事件名称(告诉我,如果我错了),但似乎确实有事件编号(向左滚动为6,向右滚动为7).而“< Button-6>”和“< Button-7>”似乎没有用,在Linux上的Python 3.5.3中的Tkinter仍然可以进行水平边缘滚动(我还没有测试过任何其他内容).
你需要绑定“< Button>”而不是“< Button-6>”和“< Button-7>”,并使处理程序像这样:
...
self.bind("<Button>", self.touchpad_events)
...
def touchpad_events(self, event):
if event.num==6:
self.xview_scroll(-10, "units")
return "break"
elif event.num==7:
self.xview_scroll(10, "units")
return "break"
我在if / elif语句的每个部分都返回“break”,因为我们不想一直返回“break”并中断其他按钮事件(仅当滚动水平鼠标滚轮时);我的意思是,如果你一直打破常规的左键单击将不再起作用(除非你编程),以及类似的东西.我只是做10和-10而不是event.delta/120,因为它给了我以下错误,否则出于某些奇怪的原因,只是手动输入数字似乎工作得很好:
tkinter.TclError:期望的整数但得到“0.0”
无论如何,我测试了这个解决方案并且它有效.问题解决了.
内容总结
以上是互联网集市为您收集整理的python – 用于水平边缘滚动的Tkinter事件(在Linux中)是什么?全部内容,希望文章能够帮你解决python – 用于水平边缘滚动的Tkinter事件(在Linux中)是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。