Windows 上 Python 3.4 中的 Tkinter 在退出时不会将内部剪贴板数据发布到 Windows 剪贴板

2024-04-16

我使用以下代码将小脚本的结果放置在剪贴板中。

from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append("Result")

它在 Python 3.3.5 及更早版本上运行良好。但是当我升级到 Python 3.4 时,它收到的是空剪贴板。我尝试了 3.4.0、3.4.1 和 3.4.2,都收到了一个结果(空剪贴板)。如果我阻止脚本立即退出,请添加input() after clipboard_append(),我看到剪贴板包含正确的“结果”。

Update1:

修改后的测试脚本显示问题不是时序问题:

from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append("Result")
input()
r.destroy()

如果我运行此脚本,请等待几秒钟,然后按 Enter 键,我会收到空​​剪贴板。

如果我运行脚本,切换到任何其他窗口并按 Ctrl+V,我会收到“结果”,并且脚本退出后“结果”仍保留在剪贴板中。

我认为在tcl/tk 8.6clipboard_clear()影响系统剪贴板,但是clipboard_append仅影响仅通过操作系统请求传输到系统剪贴板的内部 tcl/tk 剪贴板。看起来它是在 Linux 中完成的,没有系统剪贴板。

Update2:

最后提及剪贴板于Tk 变更日志 http://upstream-tracker.org/changelogs/tk/8.6.1/changelog.html指的是 2004 年:

2004-05-03 (bug fix)[939389, 822002, 732662] Correctly post internal 
clipboard data to the Windows clipboard on exit. (hobbs)

看来2004年纠正的错误在10年后又回到了我们的身边。


我怀疑“结果”永远不会到达剪贴板,而不是被清除。 Windows 上的 3.4 附带 tcl/tk 8.6,而不是 8.5。我怀疑这就是差异,并且可能是时间问题。做r.destroy追加工作之后?在退出 python 之前显式销毁 tk 根通常是一个好主意。在我们开始这样做之前,我们的测试套件遇到了问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上 Python 3.4 中的 Tkinter 在退出时不会将内部剪贴板数据发布到 Windows 剪贴板 的相关文章

随机推荐

  • Eclipse更新后插件消失了

    已使用更新 Eclipse PDTWindow gt Check for Updates特征 重启后所有第三方插件似乎都被关闭了 从 开始 clean命令行键没有帮助 Eclipse Installation Detals正确包含有关我所有
  • 从两个表中选择最大值、最小值

    我有两张桌子 不同之处在于 归档是一个表 另一个保存当前记录 这些是记录公司销售额的表格 在这两个字段中 我们都有其他字段 id 名称 销售价格 我需要从两个表中选择给定名称的最高价格和最低价格 我尝试处理查询 select name ma
  • 寻找贝宝付款教程[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个教程 它将向我展示如何接受贝宝付款 因为我对文档不太了解 在教程中 我只需要了解如何在发起
  • 如何获取传递给 JNI 的枚举值

    我有一个 Java 应用程序和 JNI dll 我想知道如何获取作为参数传递给 JNI 的枚举 int 的值 这是枚举 Java public enum envelopeType NOT SPECIFIED 1 NONE 0 IMAGE 1
  • 如何在 IntelliJ 15 中导入现有的 Grails 3 (3.0.12) 项目

    IntelliJ 网站上有用于创建新 Grails 项目的文档 但导入项目比较粗略 我无法让它为我工作 如果我告诉 IntelliJ 导入一个新项目 并将其指向我的项目目录 它不会将其识别为 Grails 项目 项目导入后 我可以转到 项目
  • Docker mysql 主机没有特权

    我正在尝试配置一个nodejs 容器来连接到mysql 数据库 我的代码如下所示 var pool mysql createPool host mysql port 3306 user root password database gene
  • IE8 不渲染某些 HTML 名称实体

    某些 HTML 名称实体未在 IE8 中呈现 相反我可以看到未呈现的 HTML 实体 例如 scedil or inodot 我找到了一个使用 HTML 数字实体的解决方案 例如 351 代替 scedil 我想知道是否有人知道这个问题的原
  • 除了扩展名之外,.json、.txt、.html、.css 和 .js 文件之间有什么区别吗?

    动力是 我有一些 JSON 我已经将其保存为 txt 文件一段时间了 我想将它们全部重命名为 json 以更准确 我很确定它们都是 UTF 8 大多数可以通过 Ajax 发送的文件也是如此 无论如何 这个问题提出了一个更大的问题 除了扩展名
  • 使用 jQuery 传递 POST 数据时打开 URL

    是否可以使用 jQuery 更改页面 URL 同时将发布数据传递到新页面 如果您的意思是要更改current页面 URL 那么您可以添加新的
  • 在没有互联网的情况下使用 Javascript 获取 GPS 位置 [重复]

    这个问题在这里已经有答案了 您好 如果设备具有 GPS 硬件 我们可以在没有互联网连接的情况下使用 JavaScript 获取 GPS 位置吗 请注意谁将其标记为重复 我需要 JavaScript 在没有互联网连接的情况下工作 并使用 GP
  • 从 mysql 表获取行到 php 数组

    如何获取 mysql 表的每一行并将其放入 php 数组中 我需要一个多维数组吗 所有这一切的目的是稍后在谷歌地图上显示一些点 您需要从表中获取所需的所有数据 像这样的事情会起作用 SQLCommand SELECT someFieldNa
  • 如何使用 CSS 更改图标图像的颜色? [复制]

    这个问题在这里已经有答案了 我想弄清楚如何更改半透明和半纯色图像的颜色 我希望能够更改白色的颜色 这样我就可以添加悬停 并添加以动态方式更改 WordPress 中颜色的功能 使用 Photoshop 来填充图像不是一个选项 因为我要在我的
  • Android 将 Px 转换为 Dp(视频宽高比)[重复]

    这个问题在这里已经有答案了 可能的重复 在android中将像素转换为dp https stackoverflow com questions 4605527 converting pixels to dp in android 我正在尝试
  • 有没有办法为 Heroku Toolbelt 设置默认应用程序?

    我在heroku上有多个app git远程 我想知道是否可以配置一个默认应用程序 这样 每当我忘记指定应用程序时 app 工具带会使用它 您可以设置heroku remote在存储库的 Git 配置中键入默认远程名称 例如 如果您的遥控器被
  • Gradle:战争任务有冲突的包含/排除

    我正在尝试使用 Gradle 构建一个 war 文件 但遇到了一个问题 即排除一个目录并包含另一个恰好具有相同名称但父目录不同的目录 请注意 在下面的第一个代码示例中 两者都没有css 目录将包含在最终版本中war文件 我假设是因为 Gra
  • 如何设置 JSlider 的大小?

    我在网上搜索了此问题的解决方案 但没有找到任何有效的方法 我在 JPanel 中有一个垂直 JSlider 它使用 GridBagLayout 和 GridBagConstraints 将对象定位在面板上 目前我有以下代码 gbc grid
  • 有返回值的 C void 函数

    据我所知 returnvoid 函数中的语句将引发错误 但在下面的程序中 情况并非如此 这里显示的输出是1 怎么会 main int i 5 printf d fun fun fun i void fun int i if i 2 retu
  • R 图中行的恒定绝对间距

    In R 我该如何调整height绘图设备的价值 例如 windows or png 以便点之间的绝对间距保持不变 这是一个例子来说明我的意思 n lt 10 windows width 4 height 4 par xpd NA plot
  • 带水平滚动的 C3 / D3 条形图

    我正在创建一个 c3 条形图 其中每个条形代表在给定的一周内加入某个计划的人数 数据只是一个对象数组 其中包含 week of people week of people 等 理想情况下 我希望图表中显示最近 6 周的数据 但我希望能够水平
  • Windows 上 Python 3.4 中的 Tkinter 在退出时不会将内部剪贴板数据发布到 Windows 剪贴板

    我使用以下代码将小脚本的结果放置在剪贴板中 from tkinter import Tk r Tk r withdraw r clipboard clear r clipboard append Result 它在 Python 3 3 5