diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2009-03-23 09:18:55 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-03-23 09:18:55 (GMT) |
commit | e5fcad302d86d316390c6b0f62759a067313e8a9 (patch) | |
tree | c2afbf6f1066b6ce261f14341cf6d310e5595bc1 /doc/src/examples/previewer.qdoc | |
download | Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.zip Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.gz Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.bz2 |
Long live Qt 4.5!
Diffstat (limited to 'doc/src/examples/previewer.qdoc')
-rw-r--r-- | doc/src/examples/previewer.qdoc | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/doc/src/examples/previewer.qdoc b/doc/src/examples/previewer.qdoc new file mode 100644 index 0000000..9cbeec1 --- /dev/null +++ b/doc/src/examples/previewer.qdoc @@ -0,0 +1,181 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \example webkit/previewer + \title Previewer Example + + The Previewer example shows how to use QtWebKit's QWebView to preview + HTML data written in a QPlainTextEdit. + + \image previewer-example.png + + \section1 The User Interface + + Before we begin, we create a user interface using \QD. Two QGroupBox + objects - the editor group box and the previewer group box are separated + by a QSplitter. In the editor group box, we have a QPlainTextEdit object, + \c plainTextEdit, and two QPushButton objects. In the previewer group box, + we have a QWebView object, \c webView. + + \image previewer-ui.png + + \section1 Previewer Class Definition + + The \c Previewer class is a subclass of both QWidget and Ui::Form. + We subclass Ui::Form in order to embed the \QD user interface form + created earlier. This method of embedding forms is known as the + \l{The Multiple Inheritance Approach}{multiple inheritance approach}. + + In our \c previewer.h file, we have a constructor and a slot, + \c on_previewButton_clicked(). + + \snippet examples/webkit/previewer/previewer.h 0 + + \section1 Previewer Class Implementation + + The \c{Previewer}'s constructor is only responsible for setting up the + user interface. + + \snippet examples/webkit/previewer/previewer.cpp 0 + + The \c on_previewButton_clicked() is a slot corresponding to the + \c{previewButton}'s \l{QPushButton::}{clicked()} signal. When the + \c previewButton is clicked, we extract the contents of \c plainTextEdit, + and then invoke the \l{QWebView::}{setHtml()} function to display our + contents as HTML. + + \snippet examples/webkit/previewer/previewer.cpp 1 + + \section1 MainWindow Class Definition + + The \c MainWindow class for the Previewer example is a subclass of + QMainWindow with a constructor and five private slots: \c open(), + \c openUrl(), \c save(), \c about() and \c updateTextEdit(). + + \snippet examples/webkit/previewer/mainwindow.h 0 + + The private objects in \c MainWindow are \c centralWidget, which is + a \c Previewer object, \c fileMenu, \c helpMenu and the QAction objects + \c openAct, \c openUrlAct, \c saveAct, \c exitAct, \c aboutAct and + \c aboutQtAct. + + \snippet examples/webkit/previewer/mainwindow.h 1 + + There are three private functions: \c createActions(), \c createMenus() + and \c setStartupText(). The \c createActions() and \c createMenus() + functions are necessary to set up the main window's actions and + assign them to the \gui File and \gui Help menus. The \c setStartupText() + function, on the other hand, displays a description about the example + in its HTML Previewer window. + + \section1 MainWindow Class Implementation + + The \c{MainWindow}'s constructor invokes \c createActions() and + \c createMenus() to set up the \gui File menu and \gui Help menu. Then, + the \c Previewer object, \c centralWidget, is set to the main window's + central widget. Also, we connect \c webView's + \l{QWebView::}{loadFinished()} signal to our \c updateTextEdit() slot. + Finally, we call the \c setStartupText() function to display the + description of the example. + + \snippet examples/webkit/previewer/mainwindow.cpp 0 + + Within the \c createActions() function, we instantiate all our private + QAction objects which we declared in \c{mainwindow.h}. We set the + short cut and status tip for these actions and connect their + \l{QAction::}{triggered()} signal to appropriate slots. + + \snippet examples/webkit/previewer/mainwindow.cpp 1 + \dots + + The \c createMenus() function instantiates the QMenu items, \c fileMenu + and \c helpMenu and adds them to the main window's + \l{QMainWindow::menuBar()}{menu bar}. + + \snippet examples/webkit/previewer/mainwindow.cpp 2 + + The example also provides an \c about() slot to describe its purpose. + + \snippet examples/webkit/previewer/mainwindow.cpp 3 + + The \c MainWindow class provides two types of \gui Open functions: + \c open() and \c openUrl(). The \c open() function opens an HTML file + with \c fileName, and reads it with QTextStream. The function then + displays the output on \c plainTextEdit. The file's name is obtained + using QFileDialog's \l{QFileDialog::}{getOpenFileName()} function. + + \snippet examples/webkit/previewer/mainwindow.cpp 4 + + The \c openUrl() function, on the other hand, displays a QInputDialog + to obtain a URL, and displays it on \c webView. + + \snippet examples/webkit/previewer/mainwindow.cpp 5 + + In order to save a HTML file, the \c save() function first extracts the + contents of \c plainTextEdit and displays a QFileDialog to obtain + \c fileName. Then, we use a QTextStream object, \c in, to write to + \c file. + + \snippet examples/webkit/previewer/mainwindow.cpp 6 + + Earlier, in \c{MainWindow}'s constructor, we connected \c{webView}'s + \l{QWebView::}{loadFinished()} signal to our private \c updateTextEdit() + slot. This slot updates the contents of \c plainTextEdit with the HTML + source of the web page's main frame, obtained using \l{QWebFrame}'s + \l{QWebFrame::}{toHtml()} function. + + \snippet examples/webkit/previewer/mainwindow.cpp 7 + + To provide a description about the Previewer example, when it starts up, + we use the \c setStartupText() function, as shown below: + + \snippet examples/webkit/previewer/mainwindow.cpp 8 + + + \section1 The \c{main()} Function + + The \c main() function instantiates a \c MainWindow object, \c mainWindow, + and displays it with the \l{QWidget::}{show()} function. + + \snippet examples/webkit/previewer/main.cpp 0 + +*/
\ No newline at end of file |