GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Home
  • Help
  • Recent changes
  • Tasks and Tools
  • Modify a page
  • Add new content
  • Page elements
  • Typographical guidelines
  • More markup help
  • Get a Translator Account
  • Languages represented
  • Translation Workflow
  • Translate a Page
  • Off-line Translation

This view

  • Original page
  • New address

GeezerVison is showing techbase.kde.org — Development/Architecture/KDE3/KHTML - KDE TechBase

< Development | Architecture/KDE3


This page has been archived
The information on this page is outdated or no longer in use but is kept for historical purposes. Please see the Category:Archives for similar pages.

KHTML - KDE's HTML library

KHTML is an XML/HTML4 compliant HTML library, with support for DOM, Java, JavaScript and Cascading Style Sheets (CSS).

You can get an overview of KHTML's current capabilities here.

Small example

Using KHTML in your program is quite easy. The following example shows you a complete application with which you can already browse the web:

#include <khtml.h>
#include <kapp.h>

int main(int argc, char *argv[])
{
    KApplication a(argc, argv, "testkhtml");

    KHTMLWidget *html = new KHTMLWidget;
    html->resize(800,500);
    //html->setJScriptEnabled(true);
    html->setJavaEnabled(true);
    //html->setFollowsLinks(false);

    a.setTopWidget(html);
    html->setURLCursor(QCursor(PointingHandCursor));
    html->openURL(argv[1]);

    QWidget::connect(html, SIGNAL(setTitle(const QString &)),
                     html, SLOT(setCaption(const QString &)));
    html->show();
    a.exec();
}

This small example already gives you a functional browser, that lets you browse the web (you'll need the kio_http executable from KDE though to access non local files). Just try testkhtml http://www.kde.org and you will get a widget showing KDE's home page.

KHTML has a lot of functionality. Almost everything you'll ever need can be accessed through the member functions of the class KHTMLWidget.

Document Object Model (DOM)

KHTML provides a mostly complete implementation of Dom Level 1 and 2.

The DOM is an implementation using internal classes to hold the document's data. The classes accessing the DOM are using a refcounting scheme to hold the data. Thus the DOM does the memory management for you. You can just use the classes defined in the DOM header files to access parts of the document. As long as you don't use pointers, you will not get memory leaks.

You can easily access the document being shown by the KHTMLWidget::document() method, from where you can get access to every part of the document.

Java

Thanks to the work of Richard Moore, KHTML can display Java applets. Java is not enabled by default, but you can do so by using KHTMLWidget::setEnableJava(true);, and setting the environment variable CLASSPATH to:

CLASSPATH=$KDEDIR/share/apps/kjava/kjava-classes.zip:$JDK_DIR/lib

You will need to have the java developers kit installed though. I tested it with JDK-1.1.7, and don't know if it'll run with other versions of JDK or with Kaffe.

JavaScript (ECMA-Script)

The JavaScript support aims at compliance with the ECMAScript Language specification ECMA-262 3rd edition. This roughly equals JavaScript 1.5.

Cascading Style Sheets (CSS)

Cascading style sheets 2.1 are mostly supported now.


Initial Author: Lars Knoll

Retrieved from "https://techbase.kde.org/index.php?title=Development/Architecture/KDE3/KHTML&oldid=107398"
Categories:
  • Archives
  • KDE3
  • Architecture
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.