Skip to main content

tk_html_widgets

HTML widgets for tkinter

Overview

This module is a collection of tkinter widgets whose text can be set in HTML format. A HTML widget isn't a web browser frame, it's only a simple and lightweight HTML parser that formats the tags used by the tkinter Text base class. The widgets behaviour is similar to the PyQt5 text widgets (see the PyQt5 HTML markup subset).

Installation

pip install tk_html_widgets

Requirements

Example

import tkinter as tk
from tk_html_widgets import HTMLLabel

root = tk.Tk()
html_label = HTMLLabel(root, html='<h1 style="color: red; text-align: center"> Hello World </H1>')
html_label.pack(fill="both", expand=True)
html_label.fit_height()
root.mainloop()

Documentation

Classes:

All widget classes inherits from the tkinter.Text() base class.

class HTMLScrolledText(tkinter.Text)

Text-box widget with vertical scrollbar

class HTMLText(tkinter.Text)

Text-box widget without vertical scrollbar

class HTMLLabel(tkinter.Text)

Text-box widget with label appereance

Methods:

def set_html(self, html, strip=True):

Description: Sets the text in HTML format.
Args:

  • html: input HTML string
  • strip: if True (default) handles spaces in HTML-like style

def fit_height(self):

Description: Fit widget height in order to display all wrapped lines

HTML support:

Only a subset of the whole HTML tags and attributes are supported (see table below). Where is possibile, I hope to add more HTML support in the next releases.

Tags Attributes Notes
a style, href
b style
br
code style
div style
em style
h1 style
h2 style
h3 style
h4 style
h5 style
h6 style
i style
img src, width, height local images only
li style
mark style
ol style, type 1, a, A list types only
p style
pre style
span style
strong style
u style
ul style bullet glyphs only

Comparison chart

In order to check the appearance of the HTML text displayed by the tk_html_widgets, I made some HTML templates and I compared the text displayed by the HTMLText widget with the text displayed by Firefox and the PyQt5 QTextBrowser widget. See details and templates HTML code in the examples folder.

Tags template comparison:

Firefox tk_html_widgets.HTMLText PyQt5.QtWidgets.QTextBrowser

Styles template comparison:

Firefox tk_html_widgets.HTMLText PyQt5.QtWidgets.QTextBrowser

Images template comparison:

Firefox tk_html_widgets.HTMLText PyQt5.QtWidgets.QTextBrowser

Acknowledgements

Thanks to my mentor, valued collegue and friend JayZar21.

Release files for tk-html-widgets 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tk-html-widgets 0.4.0
File Size Uploaded
tk_html_widgets-0.4.0.tar.gz 9.9 kB Details

Release files / tk_html_widgets-0.4.0.tar.gz

Download URL tk_html_widgets-0.4.0.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ddf63feb83619b9a30e3908b97d5a8acacf618391a372d068225e6bf38b1073f
BLAKE2b-256 checksum
How to use checksums
d452ac676bd245a608cf93018d56758f378cf70c475007d07d3707fe476f9fcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.4

Release history Release notifications | RSS feed

This release

0.4.0 This release

1 release file

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page