我使用以下代码将我的小脚本的结果放在剪贴板中.
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并且都收到了一个结果(空剪贴板).如果我阻止脚本立即退出,在clipboard_append()之后添加input(),我看到该剪贴板包含正确的“Result”.

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.6中clipboard_clear()会影响系统剪贴板,但clipboard_append只会影响仅通过OS请求转移到系统剪贴板的内部tcl / tk剪贴板.看起来它是在Linux中完成的,没有系统剪贴板.

UPDATE2:

最后提到的剪贴板在Tk changelog中指的是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根通常是一个好主意.在我们开始这样做之前,我们遇到了测试套件的问题.

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

  1. Android重启手机后从剪贴板粘贴文本

    我正在使用android剪贴板管理器并尝试将字符串粘贴到我的Android应用程序,如developer.android.comtutorial中所述.我可以在正常情况下粘贴字符串,但在以下场景中存在问题.场景:我从文本文件中复制一个字符串.然后重启手机/Android设备.然后我运行我的应用程序.现在在我的应用中,clipBoard.hasPrimaryClip()函数返回false.因此,剪贴

  2. android – 在jquery / javascript中复制到剪贴板,没有ipad / iphone的flash

    我使用ZeroClipboardJ-Query插件在使用Flash的Web浏览器中复制到剪贴板.出于浏览器安全原因,不允许复制,我们需要Flash.但ZeroClipboard复制功能在iPhone,Android或iPad等手机中不起作用,因为我们无法在那里使用闪存.那么如何在iPhone,Android或iPad等手机中实现复制到剪贴板功能呢?由于没有足够令人满意的答案,我再次发布这个问题.谢谢.解决方法实际上没有办法从Web浏览器复制到iOS设备上的剪贴板.

  3. 如何将图像/文件复制到android中的剪贴板?任何替代方法/步骤来实现这一目标

    我想将图像/文件复制到剪贴板.我用谷歌搜索了它,但我没有找到任何替代/建议.但我已经看到一些应用程序在应用商店中完成.我想知道如何实现这一目标.有人请帮帮我还是给我一些建议?

  4. Python+tkinter实现制作文章搜索软件

    无聊的时候做了一个搜索文章的软件,有没有更加的方便快捷不知道,好玩就行了。软件是利用Python和tkinter实现的,感兴趣的可以尝试一下

  5. Python+tkinter实现音乐下载软件的制作

    平常我们下载的歌曲,都是各种妖魔鬼怪的格式横行,想下载下来用一下都不行,还只能在它的播放器内听,这谁受得了~本文就来用Python制作个音乐下载软件,需要的可以参考一下

  6. python图形用户界面tkinter之按钮Button的使用说明

    这篇文章主要介绍了python图形用户界面tkinter之按钮Button的使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. python使用tkinter模块实现文件选择功能

    这篇文章主要介绍了python使用tkinter模块实现文件选择功能,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

  8. Android autojs随时翻译剪贴板单词实现示例

    这篇文章主要为大家介绍了Android autojs随时翻译剪贴板单词,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  9. Python+tkinter制作经典登录界面和点击事件

    Tkinter是 Python 标准 GUI 库,简称 “Tk”;从本质上来说,它是对 TCL/TK 工具包的一种 Python 接口封装。本文将利用tkinter制作一个经典的登录界面和点击事件,需要的可以参考一下

  10. Python使用Tkinter GUI实现输入验证功能

    这篇文章主要介绍了Python中使用Tkinter GUI实现输入验证,文中通过一个完整示例代码给大家介绍Python Tkinter GUI输入验证功能,需要的朋友可以参考下

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部