Python 3 unicode 编解码器在 tkinter 中绑定鼠标滚轮时出错

2023-12-25

在 MacOS 上使用 Python 3.6/tkinter,我在画布中创建了一个框架并将滚动条绑定到它。这一切都很好。问题是当光标位于可滚动框架中时我尝试捕获 MouseWheel 事件。我设置了一个绑定:

main_window.bind("<MouseWheel>",on_mousewheel)

并创建了一个简短的虚拟事件处理程序:

def on_mousewheel(event):
    print(event.delta)

每次我使用滚轮时,Python 都会响应:

Traceback (most recent call last):
  File "/Users/Gary/IPPS/opendb.py", line 160, in <module>
    main_window.mainloop()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 1277, in mainloop
    self.tk.mainloop(n)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

这是代码:

from tkinter import *

def on_main_window_resize(event):
    canvas.configure(scrollregion=canvas.bbox('all'))

def on_mousewheel(event):
    print(event.delta)

main_window = Tk()
main_window.bind("<MouseWheel>",on_mousewheel)
canvas = Canvas(main_window, width=500, height=500)
canvas.pack(side=LEFT, fill=BOTH, expand=YES)
cust_scroll = Scrollbar(main_window, orient=VERTICAL, command=canvas.yview)
cust_scroll.pack(side=RIGHT, fill=Y, expand=NO)
cust_list = Frame(canvas)
canvas['yscrollcommand'] = cust_scroll.set
canvas.bind('<Configure>', on_main_window_resize)
canvas.create_window((0,0), window=cust_list, anchor=NW)
main_window.grid_columnconfigure(0, weight=1)
main_window.grid_rowconfigure(0, weight=1)

memberbuttons = list();
for member in range(1,20):
    memberbutton = Button(cust_list, text="BUTTON", justify=LEFT, pady=2)
    memberbutton.pack(side=TOP, fill=X)
main_window.mainloop()

有任何想法吗?


我在网上发现一些参考文献有助于解决这个问题,它似乎发生在旧版本的 ActiveTcl (8.5.x) 上。

使用 Tkinter 和 Python 在 Mac OS X 中实现惯性滚动 https://stackoverflow.com/questions/16995969/inertial-scrolling-in-mac-os-x-with-tkinter-and-python

Github 上的 nltk/nltk - OS X:当使用鼠标滚轮滚动时,下载器 GUI 在 Python 3 中崩溃 https://github.com/nltk/nltk/issues/696

The solution is to upgrade你的版本活性薄层色谱 to >=8.6你可以通过两种方式做到这一点:

  • manually
  • 通过二进制包安装最新版本的Python 3.7.1Python 版本 3.7.1 https://www.python.org/downloads/release/python-371/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 3 unicode 编解码器在 tkinter 中绑定鼠标滚轮时出错 的相关文章

  • 如何仅选择数组中的第一列并对其求和?

    这是我的代码 import numpy as np contrainte1 1080 0 65 minutes tous les jours contrainte2 720 0 55 minutes du lundi au vendredi
  • Pandas 在列级别连接数据帧时添加键

    根据 Pandas 0 19 2 文档 我可以提供keys参数来创建结果多索引 DataFrame 一个例子 来自 pandas 文档 是 result pd concat frames keys x y z 我将如何连接数据框以便我可以在
  • Seaborn regplot 中点和线的不同颜色

    中列出的所有示例西伯恩的regplot文档 https seaborn pydata org generated seaborn regplot html点和回归线显示相同的颜色 改变color争论改变了两者 如何为点设置与线不同的颜色 你
  • Colab 的使用限制持续多久?

    当我对同一帐户的两个笔记本同时使用两个 GPU 约半小时后 Colab 已 12 小时未运行 此消息不断弹出 由于 Colab 中的使用限制 您当前无法连接到 GPU 自从我上次使用 colab 以来已经过去了大约两个小时 但该消息仍然弹出
  • Django 说“id 可能不为 NULL”,但为什么会这样呢?

    我今天要疯了 我只是尝试插入一条新记录 但它返回了 post blogpost id 可能不为 NULL 错误 这是我的模型 class BlogPost models Model title models CharField max le
  • 在 Python 中使用类作为命名空间是个好主意吗

    我正在将一堆相关的东西放入一个类中 主要目的是将它们组织到命名空间中 class Direction north 0 east 1 south 2 west 3 staticmethod def turn right d return tu
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • 如何在每次运行 python 程序时添加新列

    我希望我的表的第一列作为卷号 第二列作为名称 每当我运行 python 程序时 我想在表中添加一列日期 在这个新列中 我想填充从 user list 获得的列表将包含值 P A P P 等 如何处理 我尝试首先通过 alter 命令添加一列
  • 检查列表是否已排序的 Pythonic 方法

    有没有一种Python式的方法来检查列表是否已经排序ASC or DESC listtimestamps 1 2 3 5 6 7 就像是isttimestamps isSorted 返回True or False 我想输入一些消息的时间戳列
  • 如何在VS code终端中激活python虚拟环境?

    我使用 VS 代码编辑器创建了一个 python 虚拟环境 虚拟环境已成功创建 但我无法激活它 当我尝试激活我的虚拟环境时 我也尝试过 activate bat 我试图在 PowerShell 中激活虚拟 env 命令 该命令默认在 VS
  • Python pip install 未找到所需版本

    我使用的是Python 3 7 pip版本 10 0 1 操作系统 Windows 10 在 CMD 中 我使用以下命令安装依赖项 Python m pip install requirements txt 但它显示此消息 找不到满足要求的
  • telethon 库:如何通过电话号码添加用户

    我正在研究 Telegram 的 Telethon 库 它可以使用 Telegram API 充当 Telegram 客户端 重要提示 这是电报客户端 API https core telegram org telegram api 而不是
  • Python Tkinter 网格复选框

    我想知道是否有一种简单的方法可以使用 Tkinter 创建复选框网格 我正在尝试制作一个由 10 行和 10 列 即 100 个复选框 组成的网格 以便每行只能选择两个复选框 编辑 我正在使用带有spyder的python 2 7 到目前为
  • 如何使用 Python 实现并行 gzip 压缩?

    使用python压缩大文件 https stackoverflow com questions 9518705 big file compression with python给出了一个很好的例子来说明如何使用例如bz2 纯粹用 Pytho
  • 在 matplotlib 中将 3D 背景更改为黑色

    我在将 3D 图表的背景更改为黑色时遇到问题 这是我当前的代码 当我将facecolor设置为黑色时 它会将图表内部更改为灰色 这不是我想要的 fig plt figure fig set size inches 10 10 ax plt
  • Django:显示管理员验证错误的自定义错误消息

    我正在使用 Django 1 2 4 我有一个模型 其中有一个需要验证的字段 当验证失败时 我想向用户显示自定义错误消息 模型编辑是在管理界面中完成的 这就是我目前正在做的事情 def clean fields self exclude N
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • 从 python 文件调用 Julia 函数

    我能够创建一个 docker 环境 然后按照这个线程我有一个用 Julia 编写的高性能函数 如何从 Python 中使用它 https stackoverflow com questions 64241264 i have a high
  • Matplotlib:检查空图

    我有一个循环加载并绘制一些数据 如下所示 import os import numpy as np import matplotlib pyplot as plt for filename in filenames plt figure i
  • 具有行业级约束的 SciPy 投资组合优化

    尝试在这里优化投资组合权重分配 通过限制风险来最大化我的回报函数 我可以毫无问题地通过简单的约束 所有权重之和等于 1 找到产生我的回报函数的优化权重 并做出另一个约束 即我的总风险低于目标风险 我的问题是 如何为每个组添加行业权重界限 我

随机推荐

  • 衡量 JavaScript 性能

    我正在尝试对我们的前端进行全面分析 我想知道是否有任何工具可以自动测量 Javascript Eg 执行函数 不需要我在记录之前 之后手动放置日期对象 我页面上的哪个脚本最慢以及原因 找出我需要优化哪些功能 Are there any jQ
  • Flutter:热重载后出现“与设备连接丢失”错误

    这是调试控制台中的完整错误 Launching lib main dart on Android SDK built for x86 in debug mode Built build app outputs apk debug app d
  • 如何使用 Leaflet 一次只允许编辑一个要素/多边形?

    这几天我一直在努力解决我的问题 我有一个来自 GeoJSON 的多边形层 我想通过单击事件编辑多边形 当我单击一个多边形时 它变得可编辑 但我想要的是 当我单击另一个多边形时 第一个多边形不再处于可编辑模式 OpenLayers自然没有Le
  • Angular4 APP_INITIALIZER 不会延迟初始化

    打字稿 2 2 0 角度 4 0 我试图确保ConfigService对象在应用程序启动之前通过使用进行初始化APP INITIALIZER 我找到了许多如何执行此操作的示例 但是它们似乎都没有延迟应用程序的初始化 这里只是我尝试实现的几个
  • Shiny:可以做垂直滑块吗?

    有没有可能在Shiny中制作垂直滑块 我基本上想要一个图 在其左侧有一个垂直滑块 在其下方有一个普通的水平滑块 现在就很容易了noUiSliderInput 来自闪亮小部件 https rdrr io github dreamRs shin
  • 在模态弹出窗口中编辑网格视图而不关闭弹出窗口

    我有一个模式弹出窗口 使用 ModalPopupExtender 在网格的主 详细视图中工作 当您单击一个网格上的按钮时 它会显示一个弹出窗口 其中包含另一个网格的信息 基于在第一个网格中单击的行 这很好用 我已经在弹出的网格中启用了编辑
  • 喷气背包组合中的渐变线颜色

    我想在 jetpack compose 中绘制渐变线 我尝试了一些代码 但它不符合我的预期 预期输出 实际产量 Code Preview showBackground true Composable fun DrawTimeLine Col
  • AngularJS 可与哪些浏览器配合使用?

    这可能是一个最常见的问题 但没有任何关于浏览器版本的线索 而且 角度站点 https docs angularjs org misc faq what browsers does angularjs work with 其本身如下所述 An
  • 在列表视图中添加不同类型的项目

    是否有一个很好的教程或链接显示如何将不同的项目添加到列表视图 例如 一加二文本行 and a 复选框 另一个你只需按下 就会弹出一些东西 我现在所拥有的是每个列表项都是相同的两行文本视图和复选框 Or 如果有办法通过不同的布局一次添加 1
  • -webkit-transform 在 Internet Explorer 中不起作用

    我发现 webkit transform rotateZ 10deg 在 Internet Explorer 9 中不起作用 可以使用什么来代替 CSS3 你有没有尝试过 ms transform rotateZ 10deg As webk
  • 打印图像c#.net

    我在 PictureBox 中有一张图像 我想打印它 无需格式化 无需任何操作 只需打印即可 我一直在谷歌上搜索 但一无所获 只有人们打印表格 文本或报告 private string imgSrc public string ImgSrc
  • jMeter 未将变量应用于标头管理器

    我在 Mac 上使用 Apache JMeter 3 2 r1790748 我有一个setUp Thread Group进行身份验证调用 该调用有效并正确输出令牌 现在我需要将该令牌传递给HTTP Header Manager我拨打的所有电
  • 如何模拟私有 dao 变量?

    我有一个dao create 在测试方法时调用我想要模拟的方法 但我错过了一些东西 因为我仍然得到 NPE 这里有什么问题吗 class MyService Inject private Dao dao public void myMeth
  • 如何关闭特定列的 ag-grid 快速过滤器

    AG grid 有 快速过滤 https www ag grid com javascript grid filter quick 功能 本质上是一个搜索所有列的自由文本搜索过滤器 问题是 在某些列中 我有日期时间值 但我不想搜索这些列中的
  • 在 linq 中选择两列之间的最大值

    我在产品表中有 dateSend 列和 dateEdit 列 我可以使用以下代码选择 max dateSend from pro in Products ToList select new pro DateSend Max 但我在 date
  • PHP 的 var_dump / print_r 输出是乱码 - 编码问题?

    我遇到的问题是服务器上的输出var dump and print r出来完全是乱码 print r输出纯粹的乱码 例如 W 8 等 同时var dump至少给出string 1664 后面是类似的胡言乱语 尽管这次用双引号引起来 这看起来像
  • 聚合广告点击次数和浏览次数

    下表跟踪每个广告系列的点击次数和浏览次数 record id advert id type 1 100 click 2 102 click 3 100 view 4 100 view 5 102 view 6 100 view 7 101
  • 如何在 git 中显示标签的完整历史记录?

    git 中的标签显然可以通过简单地删除它们然后重新标记来从一个提交移动到另一个提交 例如 git tag m Version 1 0 v1 0 abcd123 git push tags git tag d v1 0 git tag m C
  • 在 iOS 中获取蓝牙低功耗外设的 MAC 地址

    我目前正在开发一个基于蓝牙低功耗设备的 iOS 应用程序 为了获得唯一的标识符来比较所获得的外设 我必须获取外设的 MAC 地址 据观察 外围设备的 UUID 属性在不同的 iOS 设备上有所不同 并且外围设备要获得 UUID 它必须至少连
  • Python 3 unicode 编解码器在 tkinter 中绑定鼠标滚轮时出错

    在 MacOS 上使用 Python 3 6 tkinter 我在画布中创建了一个框架并将滚动条绑定到它 这一切都很好 问题是当光标位于可滚动框架中时我尝试捕获 MouseWheel 事件 我设置了一个绑定 main window bind