使用Python设置TkHtml(一个Tk小部件)

A C*_*der 8 python tk-toolkit tkinter html-rendering

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

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

我不知道如何让TkHtml在python中运行.是否有一些处理第三方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()
Run Code Online (Sandbox Code Playgroud)

我收到错误:

...
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
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

小智 5

找到你的 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]]
Run Code Online (Sandbox Code Playgroud)

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

>>> import Tkinter #tkinter
>>> root = Tkinter.Tk()
>>> root.tk.eval('package require Tkhtml')
'0.0'
Run Code Online (Sandbox Code Playgroud)

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


Aiv*_*var 5

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

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