#include <mw/QtWebKit/qwebframe.h>
Link against: QtWebKit.lib
class QWebFrame : public QObject, public QObject |
The QWebFrame class represents a frame in a web page.
Public Member Enumerations | |
---|---|
enum | RenderLayer { ContentsLayer, ScrollBarLayer, PanIconLayer, AllLayers } |
Public Properties | |
---|---|
QUrl | baseUrl |
QSize | contentsSize |
bool | focus |
QIcon | icon |
QUrl | requestedUrl |
QPoint | scrollPosition |
qreal | textSizeMultiplier |
QString | title |
QUrl | url |
qreal | zoomFactor |
Public Member Functions | |
---|---|
void | addToJavaScriptWindowObject(const QString &, QObject *) |
void | addToJavaScriptWindowObject(const QString &, QObject *, QScriptEngine::ValueOwnership) |
QUrl | baseUrl() |
QList< QWebFrame * > | childFrames() |
QSize | contentsSize() |
QWebElement | documentElement() |
virtual bool | event(QEvent *) |
QWebElementCollection | findAllElements(const QString &) |
QWebElement | findFirstElement(const QString &) |
QString | frameName() |
QRect | geometry() |
bool | hasFocus() |
QWebHitTestResult | hitTestContent(const QPoint &) |
QIcon | icon() |
void | load(const QUrl &) |
void | load(const QNetworkRequest &, QNetworkAccessManager::Operation, const QByteArray &) |
QMultiMap< QString, QString > | metaData() |
QWebPage * | page() |
QWebFrame * | parentFrame() |
QPoint | pos() |
void | render(QPainter *) |
void | render(QPainter *, const QRegion &) |
void | render(QPainter *, RenderLayer, const QRegion &) |
QString | renderTreeDump() |
QUrl | requestedUrl() |
void | scroll(int, int) |
QRect | scrollBarGeometry(Qt::Orientation) |
int | scrollBarMaximum(Qt::Orientation) |
int | scrollBarMinimum(Qt::Orientation) |
Qt::ScrollBarPolicy | scrollBarPolicy(Qt::Orientation) |
int | scrollBarValue(Qt::Orientation) |
QPoint | scrollPosition() |
void | scrollToAnchor(const QString &) |
QWebSecurityOrigin | securityOrigin() |
void | setContent(const QByteArray &, const QString &, const QUrl &) |
void | setFocus() |
void | setHtml(const QString &, const QUrl &) |
void | setScrollBarPolicy(Qt::Orientation, Qt::ScrollBarPolicy) |
void | setScrollBarValue(Qt::Orientation, int) |
void | setScrollPosition(const QPoint &) |
void | setTextSizeMultiplier(qreal) |
void | setUrl(const QUrl &) |
void | setZoomFactor(qreal) |
qreal | textSizeMultiplier() |
QString | title() |
QString | toHtml() |
QString | toPlainText() |
QUrl | url() |
qreal | zoomFactor() |
Public Slots | |
---|---|
QVariant | evaluateJavaScript(const QString &) |
void | print(QPrinter *) |
Public Signals | |
---|---|
void | contentsSizeChanged(const QSize &) |
void | iconChanged() |
void | initialLayoutCompleted() |
void | javaScriptWindowObjectCleared() |
void | loadFinished(bool) |
void | loadStarted() |
void | pageChanged() |
void | provisionalLoad() |
void | titleChanged(const QString &) |
void | urlChanged(const QUrl &) |
Inherited Attributes | |
---|---|
QObject::d_ptr | |
QObject::objectName | |
QObject::staticQtMetaObject |
Inherited Functions | |
---|---|
QObject::QObject(QObjectPrivate &,QObject *) | |
QObject::blockSignals(bool) | |
QObject::childEvent(QChildEvent *) | |
QObject::children()const | |
QObject::connect(const QObject *,const QMetaMethod &,const QObject *,const QMetaMethod &,Qt::ConnectionType) | |
QObject::connect(const QObject *,const char *,const QObject *,const char *,Qt::ConnectionType) | |
QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType)const | |
QObject::connectNotify(const char *) | |
QObject::customEvent(QEvent *) | |
QObject::deleteLater | |
QObject::destroyed | |
QObject::disconnect(const QObject *,const QMetaMethod &,const QObject *,const QMetaMethod &) | |
QObject::disconnect(const QObject *,const char *) | |
QObject::disconnect(const QObject *,const char *,const QObject *,const char *) | |
QObject::disconnect(const char *,const QObject *,const char *) | |
QObject::disconnectNotify(const char *) | |
QObject::dumpObjectInfo() | |
QObject::dumpObjectTree() | |
QObject::dynamicPropertyNames()const | |
QObject::eventFilter(QObject *,QEvent *) | |
QObject::findChild(const QString &)const | |
QObject::findChildren(const QRegExp &)const | |
QObject::findChildren(const QString &)const | |
QObject::inherits(const char *)const | |
QObject::installEventFilter(QObject *) | |
QObject::isWidgetType()const | |
QObject::killTimer(int) | |
QObject::moveToThread(QThread *) | |
QObject::objectName()const | |
QObject::parent()const | |
QObject::property(const char *)const | |
QObject::receivers(const char *)const | |
QObject::registerUserData() | |
QObject::removeEventFilter(QObject *) | |
QObject::sender()const | |
QObject::senderSignalIndex()const | |
QObject::setObjectName(const QString &) | |
QObject::setParent(QObject *) | |
QObject::setProperty(const char *,const QVariant &) | |
QObject::setUserData(uint,QObjectUserData *) | |
QObject::signalsBlocked()const | |
QObject::startTimer(int) | |
QObject::thread()const | |
QObject::timerEvent(QTimerEvent *) | |
QObject::userData(uint)const | |
QObject::~QObject() |
A frame can be loaded using load() or setUrl(). Alternatively, if you have the HTML content readily available, you can use setHtml() instead.
The page() function returns a pointer to the web page object. See {QWebView}{Elements of QWebView} for an explanation of how web frames are related to a web page and web view.
The QWebFrame class also offers methods to retrieve both the URL currently loaded by the frame (see url()) as well as the URL originally requested to be loaded (see requestedUrl()). These methods make possible the retrieval of the URL before and after a DNS resolution or a redirection occurs during the load process. The requestedUrl() also matches to the URL added to the frame history ({QWebHistory}) if load is successful.
The title of an HTML frame can be accessed with the title() property. Additionally, a frame may also specify an icon, which can be accessed using the icon() property. If the title or the icon changes, the corresponding titleChanged() and iconChanged() signals will be emitted. The zoomFactor() property can be used to change the overall size of the content displayed in the frame.
QWebFrame objects are created and controlled by the web page. You can connect to the web page's {QWebPage::}{frameCreated()} signal to be notified when a new frame is created.
There are multiple ways to programmatically examine the contents of a frame. The hitTestContent() function can be used to find elements by coordinate. For access to the underlying DOM tree, there is documentElement(), findAllElements() and findFirstElement().
A QWebFrame can be printed onto a QPrinter using the print() function. This function is marked as a slot and can be conveniently connected to {QPrintPreviewDialog}'s {QPrintPreviewDialog::}{paintRequested()} signal.
See also: QWebPage
This enum describes the layers available for rendering using {QWebFrame::}{render()}. The layers can be OR-ed together from the following list:
ContentsLayer The web content of the frame ScrollBarLayer The scrollbars of the frame PanIconLayer The icon used when panning the frame
AllLayers Includes all the above layers
Enumerator | Value | Description |
---|---|---|
ContentsLayer | 0x10 | |
ScrollBarLayer | 0x20 | |
PanIconLayer | 0x40 | |
AllLayers | 0xff |
QSize | contentsSize |
the size of the contents in this frame
See also: contentsSizeChanged()
bool | focus |
QIcon | icon |
the icon associated with this frame
See also: iconChanged(), QWebSettings::iconForUrl()
qreal | textSizeMultiplier |
the scaling factor for all text in the frame
Use setZoomFactor instead, in combination with the ZoomTextOnly attribute in QWebSettings.
Setting this property also enables the ZoomTextOnly attribute in QWebSettings.
QString | title |
the title of the frame as defined by the HTML <title> element
See also: titleChanged()
QUrl | url |
the url of the frame currently viewed
Setting this property clears the view and loads the URL.
By default, this property contains an empty, invalid URL.
See also: urlChanged()
void | addToJavaScriptWindowObject | ( | const QString & | name, |
QObject * | object | |||
) |
Make object available under name from within the frame's JavaScript context. The object will be inserted as a child of the frame's window object.
Qt properties will be exposed as JavaScript properties and slots as JavaScript methods.
If you want to ensure that your QObjects remain accessible after loading a new URL, you should add them in a slot connected to the javaScriptWindowObjectCleared() signal.
If Javascript is not enabled for this page, then this method does nothing.
The object will never be explicitly deleted by QtWebKit.
void | addToJavaScriptWindowObject | ( | const QString & | name, |
QObject * | object, | |||
QScriptEngine::ValueOwnership | ownership | |||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Make object available under name from within the frame's JavaScript context. The object will be inserted as a child of the frame's window object.
Qt properties will be exposed as JavaScript properties and slots as JavaScript methods.
If you want to ensure that your QObjects remain accessible after loading a new URL, you should add them in a slot connected to the javaScriptWindowObjectCleared() signal.
If Javascript is not enabled for this page, then this method does nothing.
The ownership of object is specified using own.
QUrl | baseUrl | ( | ) | const |
QSize | contentsSize | ( | ) | const |
void | contentsSizeChanged | ( | const QSize & | size | ) | [signal] |
See also: contentsSize()
QWebElement | documentElement | ( | ) | const |
The document element provides access to the entire structured content of the frame.
QVariant | evaluateJavaScript | ( | const QString & | scriptSource | ) | [slot] |
Evaluates the JavaScript defined by scriptSource using this frame as context and returns the result of the last executed statement.
See also: addToJavaScriptWindowObject(), javaScriptWindowObjectCleared()
bool | event | ( | QEvent * | ) | [virtual] |
Reimplemented from QObject::event(QEvent *)
QWebElementCollection | findAllElements | ( | const QString & | selectorQuery | ) | const |
See also: QWebElement::findAll()
QWebElement | findFirstElement | ( | const QString & | selectorQuery | ) | const |
See also: QWebElement::findFirst()
bool | hasFocus | ( | ) | const |
QWebHitTestResult | hitTestContent | ( | const QPoint & | pos | ) | const |
Performs a hit test on the frame contents at the given position pos and returns the hit test result.
QIcon | icon | ( | ) | const |
void | iconChanged | ( | ) | [signal] |
This signal is emitted when the icon ("favicon") associated with the frame has been loaded.
See also: icon()
void | initialLayoutCompleted | ( | ) | [signal] |
This signal is emitted when the frame is laid out the first time. This is the first time you will see contents displayed on the frame.
A frame can be laid out multiple times.
void | javaScriptWindowObjectCleared | ( | ) | [signal] |
This signal is emitted whenever the global window object of the JavaScript environment is cleared, e.g., before starting a new load.
If you intend to add QObjects to a QWebFrame using addToJavaScriptWindowObject(), you should add them in a slot connected to this signal. This ensures that your objects remain accessible when loading new URLs.
void | load | ( | const QUrl & | url | ) |
Loads url into this frame.
The view remains the same until enough data has arrived to display the new url.
See also: setUrl(), setHtml(), setContent()
void | load | ( | const QNetworkRequest & | request, |
QNetworkAccessManager::Operation | operation = QNetworkAccessManager::GetOperation, | |||
const QByteArray & | body = QByteArray() | |||
) |
Loads a network request, req, into this frame, using the method specified in operation.
body is optional and is only used for POST operations.
The view remains the same until enough data has arrived to display the new content.
See also: setUrl()
void | loadFinished | ( | bool | ok | ) | [signal] |
See also: loadStarted()
QMultiMap< QString, QString > | metaData | ( | ) | const |
Returns the meta data in this frame as a QMultiMap.
<html> <head> <meta name="description" content="This document is a tutorial about Qt development"> <meta name="keywords" content="Qt, WebKit, Programming"> </head> ... </html>
Given the above HTML code the metaData() function will return a map with two entries: Key Value "description" "This document is a tutorial about Qt development" "keywords" "Qt, WebKit, Programming"
This function returns a multi map to support multiple meta tags with the same attribute name.
QWebFrame * | parentFrame | ( | ) | const |
Returns the parent frame of this frame, or 0 if the frame is the web pages main frame.
This is equivalent to qobject_cast<QWebFrame*>(frame->parent()).
See also: childFrames()
void | provisionalLoad | ( | ) | [signal] |
void | render | ( | QPainter * | ) |
Render the frame into painter.
void | render | ( | QPainter * | , |
const QRegion & | clip | |||
) |
Render the frame into painter clipping to clip.
void | render | ( | QPainter * | , |
RenderLayer | layer, | |||
const QRegion & | clip = QRegion() | |||
) |
See also: print()
QString | renderTreeDump | ( | ) | const |
Returns a dump of the rendering tree. This is mainly useful for debugging html.
QUrl | requestedUrl | ( | ) | const |
void | scroll | ( | int | , |
int | ||||
) |
See also: QWebFrame::scrollPosition
QRect | scrollBarGeometry | ( | Qt::Orientation | orientation | ) | const |
int | scrollBarMaximum | ( | Qt::Orientation | orientation | ) | const |
Returns the maximum value for the scrollbar with orientation orientation, or 0 if no scrollbar is found for orientation.
See also: scrollBarMinimum()
int | scrollBarMinimum | ( | Qt::Orientation | orientation | ) | const |
Returns the minimum value for the scrollbar with orientation orientation.
The minimum value is always 0.
See also: scrollBarMaximum()
Qt::ScrollBarPolicy | scrollBarPolicy | ( | Qt::Orientation | orientation | ) | const |
Returns the scrollbar policy for the scrollbar defined by orientation.
int | scrollBarValue | ( | Qt::Orientation | orientation | ) | const |
Returns the current value for the scrollbar with orientation orientation, or 0 if no scrollbar is found for orientation.
See also: scrollBarMinimum(), scrollBarMaximum()
QPoint | scrollPosition | ( | ) | const |
void | scrollToAnchor | ( | const QString & | anchor | ) |
QWebSecurityOrigin | securityOrigin | ( | ) | const |
void | setContent | ( | const QByteArray & | data, |
const QString & | mimeType = QString(), | |||
const QUrl & | baseUrl = QUrl() | |||
) |
Sets the content of this frame to the specified content data. If the mimeType argument is empty it is currently assumed that the content is HTML but in future versions we may introduce auto-detection.
External objects referenced in the content are located relative to baseUrl.
The data is loaded immediately; external objects are loaded asynchronously.
This method will not affect session or global history for the frame.
void | setHtml | ( | const QString & | html, |
const QUrl & | baseUrl = QUrl() | |||
) |
Sets the content of this frame to html. baseUrl is optional and used to resolve relative URLs in the document, such as referenced images or stylesheets.
The html is loaded immediately; external objects are loaded asynchronously.
If a script in the html runs longer than the default script timeout (currently 10 seconds), for example due to being blocked by a modal JavaScript alert dialog, this method will return as soon as possible after the timeout and any subsequent html will be loaded asynchronously.
When using this method WebKit assumes that external resources such as JavaScript programs or style sheets are encoded in UTF-8 unless otherwise specified. For example, the encoding of an external script can be specified through the charset attribute of the HTML script tag. It is also possible for the encoding to be specified by web server.
This is a convenience function equivalent to setContent(html, "text/html", baseUrl).
This method will not affect session or global history for the frame.
This function works only for HTML, for other mime types (i.e. XHTML, SVG) setContent() should be used instead.
See also: toHtml(), setContent(), load()
void | setScrollBarPolicy | ( | Qt::Orientation | orientation, |
Qt::ScrollBarPolicy | policy | |||
) |
Sets the scrollbar policy for the scrollbar defined by orientation to policy.
void | setScrollBarValue | ( | Qt::Orientation | orientation, |
int | value | |||
) |
Sets the current value for the scrollbar with orientation orientation.
The scrollbar forces the value to be within the legal range: minimum <= value <= maximum.
Changing the value also updates the thumb position.
See also: scrollBarMinimum(), scrollBarMaximum()
void | setScrollPosition | ( | const QPoint & | pos | ) |
void | setTextSizeMultiplier | ( | qreal | factor | ) |
Sets the value of the multiplier used to scale the text in a Web frame to the factor specified.
void | setUrl | ( | const QUrl & | url | ) |
void | setZoomFactor | ( | qreal | factor | ) |
qreal | textSizeMultiplier | ( | ) | const |
QString | title | ( | ) | const |
void | titleChanged | ( | const QString & | title | ) | [signal] |
This signal is emitted whenever the title of the frame changes. The title string specifies the new title.
See also: title()
QString | toHtml | ( | ) | const |
Returns the frame's content as HTML, enclosed in HTML and BODY tags.
See also: setHtml(), toPlainText()
QString | toPlainText | ( | ) | const |
Returns the content of this frame converted to plain text, completely stripped of all HTML formatting.
See also: toHtml()
QUrl | url | ( | ) | const |
void | urlChanged | ( | const QUrl & | url | ) | [signal] |
This signal is emitted with the URL of the frame when the frame's title is received. The new URL is specified by url.
See also: url()