HTML widgets for tkinter
Project description
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
- Python 3.4 or later with tcl/tk support
- Pillow 5.3.0
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file tk_html_widgets-0.4.0.tar.gz
.
File metadata
- Download URL: tk_html_widgets-0.4.0.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddf63feb83619b9a30e3908b97d5a8acacf618391a372d068225e6bf38b1073f |
|
MD5 | 4b3b8aca4d161ada34e7a68a147c7439 |
|
BLAKE2b-256 | d452ac676bd245a608cf93018d56758f378cf70c475007d07d3707fe476f9fcc |