16

Sorry, perhaps I haven't described the problem well first time. All your answers are interesting, but most of them are almost full-featured web browsers, my task is much simpler.

I'm planning to write a GUI application using one of the available on linux GUI frameworks (I haven't yet chosen one). I shall use html in my application to render into one of my application frames text with some attributes — different fonts etc, which are stored in CSS.

The HTML shall be generated by my application, so the only task is to render a HTML / CSS string. Is there any widget which can do only that render and nothing more — no history, no bookmarks, no URL-loading etc? If there isn't I shall use one of those you advised — it's ok — but I'm just interested if there is just an html-renderer without any extra features.

4
  • The QWebView should be what you are looking for, that is render html. Did you look at the documentation I linked? Commented Oct 20, 2009 at 7:10
  • Yeah, I did. That's not exactly what I wanted: it's almost a web browser capable of loading pages, storing history etc. Thank you anyway, I shall use it, if I don't find any other solution Commented Oct 20, 2009 at 7:51
  • Maybe QWebPage might do the trick, but I have never tried. Commented Oct 20, 2009 at 9:59
  • 1
    Is there an updated answer to this question? Commented Jan 7, 2021 at 21:30

3 Answers 3

16

You should use a UI framework:

An other option is to open the OS default web browser through something like this:

import webbrowser
url = 'http://www.python.org'

# Open URL in a new tab, if a browser window is already open.
webbrowser.open_new_tab(url + '/doc')

# Open URL in new window, raising the window if possible.
webbrowser.open_new(url)

You can find more info about the webbrowser module here. I think that the simplest way would be to use the os browser if you are looking for something very light-weight since it does not depend on a framework and it would work in all platforms. Using Tk may be an other option that is light and will not require to install a 3rd party framework.

Sign up to request clarification or add additional context in comments.

2 Comments

Not to forget WxPython (wxpython.org): The demo shows how to embed Internet Explorer on Windows and WebKit on Macs...
@PhilS Internet Explorer isn't available on linux ) Also it's to heavy
0

Flying Saucer Project -- an XHTML renderer.

No, it's not Python. It's -- however -- trivially called from Python.

6 Comments

Can I embed it in my python application?
@netimen: I can't understand your question. What do you mean by "embed"? Flying saucer is Java. You can easily call a Java program from within Python. Would that be "embedded"? You could use the Jython JVM to run both components. Would that be "embedded"?
I mean that I want to render the html into a window of my application — can I do that?
Ummm... I seriously don't get your question. If you have an "application", it has windows and frames and panels, correct? Almost all GUI frameworks have an HTML rendering capability. Since your question doesn't mention the framework you're using, please UPDATE your question to specifically state which GUI framework your application is using. If your application is not using a GUI framework, please UPDATE your question to explain what you're doing.
Sorry for bad explanation. I don't mention any framework because I'm currently only planning my application, so I haven't chosen the framework yet. But there shall be an application with windows and panels. The problem is that html rendering capabilities of GUI frmaework are either too weak (wx.HtmlWindow doesn't support CSS) or too strong (pywebkitgtk is almmost a full-featured browser). I try to find a good balance
|
0

Maybe HulaHop could be interesting for you (can also be combined with Pyjamas). The Mozilla Prism Project might also be relevant.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.