В качестве минимального примера приведу пример использования от разработчика модуля:
Код: Выделить всё
from tkinterweb import HtmlFrame #import the HTML browser
import tkinter as tk #python3
root = tk.Tk() #create the tkinter window
frame = HtmlFrame(root) #create the HTML browser
frame.load_website("http://tkhtml.tcl.tk/tkhtml.html") #load a website
frame.pack(fill="both", expand=True) #attach the HtmlFrame widget to the parent window
root.mainloop()
Попытки решения
Я сделал следующее, предложенное ИИ:- Отрегулируйте коэффициент масштабирования в Tk с помощью root.tk.call('tk', 'scaling', 2.0), а также с другими значения (где-то между 0,3 и √5). Это не помогает - имеет смысл, поскольку проблема, похоже, не связана с Tk или tkinter.
- Вручную установите ширину и высоту виджета HtmlFrame - не повезло
- Установите переменные среды TK_SILENCE_DEPRECATION=1 и NSHighResolutionCapable=True – разницы нет.
Альтернативы
Есть и другие модули, отображающие HTML, но они не очень подходят:- tkhtmlview: практически не использует CSS и поэтому выглядит ужасно (хотя и не зернисто)
- tkinterhtml: не поддерживается с 2016 года (Python 3.5), создатель предостерегает от его использования
- цефпитон: оборачивает полный браузер Chromium большим двоичным исполняемым файлом... Давайте
- передадим HTML в WebKit (движок рендеринга MacOS Safari) через модуль PyObjC и ряд других модулей, и затем он отображается в отдельном окне
- просто открывая его в веб-браузере (а не то, что я пытаюсь сделать).
Что могло бы быть причиной такого зернистого рендеринга на экране с высоким разрешением, в то время как tkinter отображает все свои виджеты и текст идеально четкими?
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-in-macos
Мобильная версия