将 Web 浏览器窗口添加到 Tkinter 窗口

新手上路,请多包涵

我用 python tkinter 制作了一个 gui 应用程序,我想在我的 tKinter 窗口中放置一个迷你的小型网络浏览器,而不打开新选项卡。我怎样才能做到这一点?

原文由 ssssssssssssssssssss 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.9k
2 个回答

你不能。 tkinter 库中没有允许您显示 HTML 的小部件。如果你真的 需要 使用 tkinter 你可以尝试 tkinterhtml 但它很奇怪并且不适用于很多功能(超链接,图像……)

如果你只想创建一个带有 web 界面的 python 应用程序,你最好使用 python web 框架,如 flaskdjango

原文由 Sylvan LE DEUNFF 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是一个老问题,但对于将来遇到这个问题的任何人来说,在 tkinter 中嵌入网页是可能的。

您可以尝试 tkinterweb (免责声明:我是作者)。它基于 tkinterhtml ,但支持超链接、样式、图像等。只需使用 pip install tkinterweb 安装它,然后运行:

 import tkinterweb
import tkinter as tk
root = tk.Tk()
frame = tkinterweb.HtmlFrame(root)
frame.load_website(YOUR_WEBSITE)
frame.pack(fill="both", expand=True)
root.mainloop()

Tkinterweb 使用已停产的 Tk HTML 小部件,因此复杂的网站可能无法正常工作。不过,更简单的网站工作得很好。

另一个很好的选择是 cefpython ,它是一个嵌入在 Tkinter 中的成熟的 chromium 浏览器。在 https://github.com/cztomczak/cefpython/blob/master/examples/tkinter_.py 中可以找到在 tkinter 中使用 cefpython 的示例。不幸的是,cefpython 在较新的 python 版本中确实存在一些问题,并且可能会消耗一些资源,但它确实运行良好。

如果你的 Tkinter 应用程序需要一个完整的网络浏览器,我建议你试试 cefpython。如果您只需要真正快速和简单的东西来显示基本网页或帮助窗口,请尝试 tkinterweb。

原文由 Andoo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进