【问题标题】:Setting up TkHtml (a Tk widget) with Python使用 Python 设置 TkHtml(一个 Tk 小部件)
【发布时间】:2012-04-26 19:29:26
【问题描述】:

我需要一种简单的方法来呈现通过请求 (python-requests.org) 检索到的 HTML 页面。我在 Windows 上使用 Python 3.2。

我正在使用 tkinter,我发现了一个名为 TkHtml 的 Tk 小部件。它在http://tkhtml.tcl.tk/ 进行了描述,并且可以从http://www.hwaci.com/sw/tkhtml/ 下载一个DLL。我在 http://tix.sourceforge.net/Tixapps/src/Python/TkHtml.py 找到了一个 python 包装器。

我不知道如何让 TkHtml 在 python 中工作。是否有一些处理 3rd 方 Tk 小部件的标准方法?

我将 tkhtml.dll 放在 Python32\DLLs 中(不知道这是否正确),并将 TkHtml.py 放在 Python32\Lib\site-packages 中。我继续修复 TkHtml.py 中的导入以使用 Python 3(将 tkFileDialog 更改为 tkinter.filedialog,将 Tkinter 更改为 tkinter)。

当我这样做时:

import TkHtml
app=TkHtml.TestApp()

我得到错误:

...
File "C:\Program Files\Python32\lib\site-packages\TkHtml.py", line 45, in __init__
master.tk.call("package", "require", "tkhtml")
_tkinter.TclError: can't find package tkhtml

有什么想法吗?

【问题讨论】:

    标签: python tkinter tk html-rendering


    【解决方案1】:

    我为 Tkhtml3 创建了一个 pip 可安装的 Python 包装器:https://bitbucket.org/aivarannamaa/tkinterhtml

    它带有适用于 Windows、Mac 和 Linux 的 TkHtml3 二进制文件。

    【讨论】:

    • 多一点文档会有所帮助。
    【解决方案2】:

    找到您的 Python tcl 目录,例如。 C:\Python32\tcl 。这就是 tcl/tk 扩展的用武之地。

    在那里创建一个名为 Tkhtml 的新文件夹。

    在此文件夹中放入 (1) 您的 .dll 文件,(2) 名为 pkgIndex.tcl 的文本文件

    pkgIndex.tcl 包含这样的一行:

    package ifneeded Tkhtml 0.0 [list load [file join $dir tkhtml.dll]]
    

    如果您可以在 python 提示符下执行此操作,

    >>> import Tkinter #tkinter
    >>> root = Tkinter.Tk()
    >>> root.tk.eval('package require Tkhtml')
    '0.0'
    

    ...然后包可用。字符串'0.0'代表版本号。

    【讨论】:

      【解决方案3】:

      我在 Windows 8(64 位)上使用 Python 3.3,并收到与 OP 相同的包加载错误。

      我也已将TkHtml .dll.py 文件下载并保存到以下文件夹:

      tkhtml.dll -> D:\Python3.3\DLL
      TkHtml.py -> D:\Python3.3\Lib\site-packages
      

      根据noob oddy的建议,我做了以下事情:

      tkhtml.dll -> D:\Python3.3\tcl\Tkhtml
      pkgIndex.tcl -> D:\Python3.3\tcl\Tkhtml
      

      并将这一行:package ifneeded Tkhtml 0.0 [list load [file join $dir tkhtml.dll]] 复制到 pkgIndex.tcl 文件中。

      最终对我有用的是将所有内容从 Python3.3 文件夹移动到 Python2 文件夹。 HTML 渲染器运行良好。 TkHtml 似乎与 Python 3 不兼容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-01
        • 2013-07-05
        相关资源
        最近更新 更多