Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
HTML widgets for tkinter
Fork of tk_html_widgets
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).
pip install tkhtmlview
import tkinter as tk
from tkhtmlview 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()
You can also save html in a separate .html file and then use RenderHTML
to render html for widgets.
index.html
<!DOCTYPE html>
<html>
<body>
<h1>Orange is so Orange</h1>
<img
src="https://interactive-examples.mdn.mozilla.net/media/cc0-images/grapefruit-slice-332-332.jpg"
/>
<p>
The orange is the fruit of various citrus species in the family Rutaceae;
it primarily refers to Citrus × sinensis, which is also called sweet
orange, to distinguish it from the related Citrus × aurantium, referred to
as bitter orange.
</p>
</body>
</html>
demo.py
import tkinter as tk
from tkhtmlview import HTMLText, RenderHTML
root = tk.Tk()
html_label = HTMLText(root, html=RenderHTML('index.html'))
html_label.pack(fill="both", expand=True)
html_label.fit_height()
root.mainloop()
All widget classes inherits from the tkinter.Text() base class.
Text-box widget with vertical scrollbar
Text-box widget without vertical scrollbar
Text-box widget with label appearance
RenderHTML class will render HTML from .html file for the widgets.
Description: Sets the text in HTML format.
> Args:
- html: input HTML string
- strip: if True (default) handles spaces in HTML-like style
Description: Fit widget height in order to display all wrapped lines
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 | experimental support for remote images |
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 |
table,tr,th,td | - | basic support |
Note: All styles are not supported; align with justify is not supported; it falls back to left align
FAQs
Display HTML with Tkinter
We found that tkhtmlview demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.