如何在 OSX 上通过 Python Tkinter 安装和使用 TkDnD?

2023-12-02

我花了一些时间来搜索在 OSX 平台上使用 Python Tkinter 进行拖放行为的可行解决方案,找到的最可能的解决方案是 TkDnD 库。http://sourceforge.net/projects/tkdnd/files/

但是我找不到任何有关安装的手册或指南,并且基本上没有 OSX 上的示例。有人可以与我分享他们的经验吗?

此外,使用 Tkinter 作为 GUI 解决方案不是一个好的选择吗?我的用户都是 OSX 平台,并且所有这些机器上都预装了 Python。有什么好的建议可以找到无需额外安装的本机 GUI 支持吗? PyQT 似乎是另一种选择,但不确定是否需要在客户端计算机上进行额外安装。


我通过下载以下内容在 Windows (10) 和 OSX (10.11) 上运行:
A) Tk 扩展tkdnd2.8 from https://sourceforge.net/projects/tkdnd/
B) Python 包装器TkinterDnD2 from https://sourceforge.net/projects/tkinterdnd/

On OSX:
1)将tkdnd2.8目录复制到/Library/Tcl
2)将TkinterDnD2目录复制到/Library/Frameworks/Python.framework/Versions/.../lib/python/site-packages
(使用sudo由于权限的原因,用于在 OSX 上复制文件的命令。)

在 Windows 上:
1)将tkdnd2.8目录复制到...\Python\tcl
2) 将 TkinterDnD2 目录复制到 ...\Python\Lib\site-packages

这是一个基于的简单测试用例python 将资源管理器文件拖放到 tkinter 条目小部件中。 TkinterDnD2 下载附带了更强大的示例。

    import sys
    if sys.version_info[0] == 2:
        from Tkinter import *
    else:
        from tkinter import *
    from TkinterDnD2 import *

    def drop(event):
        entry_sv.set(event.data)

    root = TkinterDnD.Tk()
    entry_sv = StringVar()
    entry_sv.set('Drop Here...')
    entry = Entry(root, textvar=entry_sv, width=80)
    entry.pack(fill=X, padx=10, pady=10)
    entry.drop_target_register(DND_FILES)
    entry.dnd_bind('<<Drop>>', drop)
    root.mainloop()

更新:上述过程适用于 Python 2 或 3。

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

如何在 OSX 上通过 Python Tkinter 安装和使用 TkDnD? 的相关文章

随机推荐

  • Hibernate 创建冗余的多对多表

    在开发 Spring Boot 应用程序时 我必须删除数据库并让 Hibernate 再次生成它hibernate hbm2ddl auto update 之后 我想确保它按照我想要的方式执行所有操作 因此我调用 MySQL Workben
  • 从 url 加载图像

    我有一个图像网址 我想在 ImageView 中显示此 URL 中的图像 但我无法做到这一点 如何才能实现这一目标 如果您根据按钮单击加载图像 则上面接受的答案非常好 但是如果您在新活动中执行此操作 它会使 UI 冻结一两秒 环顾四周 我发
  • 单击后如何关闭此菜单

    我正在尝试定制这个菜单 这是 html 标记 ul class topnav li a href home Home a li li a href news News a li li a href contact Contact a li
  • 通过 multipart-HTML-Post 上传 pdf 确实会更改文件

    我尝试使用以下代码通过 vba 的多部分上传 pdf Public Function sap upload ByVal par objectID As String ByVal par description As String ByVal
  • 使用 Systemjs-builder 为 Angular2 应用程序创建多个包

    我有一个可用的 Angular2 应用程序 其结构如下 app components moduleA moduleB shared app module ts app routing ts app component ts main ts
  • 线程和同步方法

    我有以下代码 public class MyThread extends Thread private int i public static int sum 0 public MyThread int k i k public stati
  • 如何使用 XSLT 更新 XML 中的单个值?

    我有一个巨大的 XML 文件 我想在其中更新单个值 有没有一种方法可以编写 XSLT 文件 只需进行简单的更改即可生成现有 XML 文件的精确副本 例如 假设我有以下 XML 并且我想将员工 Martin 的职位编号更改为 100 我该如何
  • 单击按钮时翻转 div 的内容

    我正在学习翻转 div 内容的 3D 效果 悬停时 下面的 div 代码可以完美运行 但我想要的是 如果有人只点击按钮翻转 那么 div 的翻转应该可以工作 我只需要单击按钮时才需要这种翻转效果 而不是悬停或其他任何东西
  • EJB 应用程序中的 CORBA 异常

    我遇到了 EJB Glassfish 的问题 我正在开发一个客户端 服务器应用程序 其中客户端创建一个实体对象 并且必须将其发送到服务器应用程序 服务器应用程序必须将该实体保留在其数据库中 我选择使用会话 bean 与服务器进行通信 我已经
  • 通过 cron 执行 PHP - 未指定输入文件

    我使用以下命令通过 cron 执行 PHP 文件 php q home seilings public html dvd cron mailer php 问题是我有一个包含在执行中的文件 该文件确定要加载哪个配置 如下所示 if strst
  • 如何从 Python 内部在 Mac OS X 中截取屏幕截图:又名 Command-Control-Shift-4

    使用 Command Control Shift 4 可以截取屏幕截图区域 然后将其保存到剪贴板 我想知道 Python 内部是否也可以实现同样的功能 理想情况下 可以在 Python 中以编程方式指定图像文件格式以及保存位置 有任何想法吗
  • 如何在不使用控制器基类的情况下为所有视图设置 ViewBag 属性?

    过去 我通过让所有控制器继承自公共基础控制器 以全局方式将常见属性 例如当前用户 粘贴到 ViewData ViewBag 上 这允许我在基本控制器上使用 IoC 而不仅仅是访问此类数据的全局共享 我想知道是否有其他方法可以将此类代码插入到
  • 为什么从 Web 服务器执行时 Python 环境变量不同?

    我有以下可执行的 python 脚本 usr bin python import os print os environ 当我以 root 身份从命令行执行它时 我得到以下信息 LANG en US UTF 8 TERM xterm 256
  • 一张 Datatables.net 表,包含来自 Sharepoint 2010 REST API 的多个 ajax 调用

    我是新来的 所以请提前原谅我这个冗长的问题 我是 SP2010 的新手 到目前为止 按照以下教程对我的 SP 列表进行 JQuery Ajax 调用 谁需要数据视图 Web 部件 SharePoint REST 和 DataTables n
  • Django over Postgresql:使用原始 sql 插入和返回语句不起作用

    使用 Postgresql 9 3 PostGIS 和 django 我尝试在表中输入一条记录并返回给定的 id 如下所示 def join request from django db import connection transact
  • 检查android进程组

    设备 安卓6 0 1 我写了一个应用程序 使用WRITE EXTERNAL STORAGE清单中的权限 安装此应用程序 然后从设置中打开此应用程序的存储权限 adb shell ps grep com amida test u0 a199
  • 如何在 Laravel Migration 中将时间戳转换为波斯语

    我有这个 GET 表 正如您在其末尾看到的那样 我添加了members created at返回用户在网站上注册的日期 class CreateRegisteredStudentInfoView extends Migration publ
  • 同步对 ASP.NET 会话成员的访问

    我正在构建一个 Javascript 应用程序 并且 eash user 有一个单独的 UserSession 该应用程序进行大量 Ajax 调用 每个 Ajax 调用都需要访问用户的单个 UserSession 对象 每个 Ajax 调用
  • 如何从 Web 应用程序读取 web.xml

    对于 WebApps web xml 可用于存储应用程序设置 我怎样才能读取这个文件 我的 servlet 在 GlassFish v2 服务器中运行 不确定我完全理解这个问题 假设您的 Servlet 扩展HttpServlet Http
  • 如何在 OSX 上通过 Python Tkinter 安装和使用 TkDnD?

    我花了一些时间来搜索在 OSX 平台上使用 Python Tkinter 进行拖放行为的可行解决方案 找到的最可能的解决方案是 TkDnD 库 http sourceforge net projects tkdnd files 但是我找不到