A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FQt%2FQDockWidget</id>
		<title>C++/Qt/QDockWidget - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FQt%2FQDockWidget"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QDockWidget&amp;action=history"/>
		<updated>2026-04-18T17:04:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QDockWidget&amp;diff=1038&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QDockWidget&amp;diff=1038&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QDockWidget&amp;diff=1039&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QDockWidget&amp;diff=1039&amp;oldid=prev"/>
				<updated>2010-05-25T10:24:38Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Docking widget==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
/****************************************************************************&lt;br /&gt;
**&lt;br /&gt;
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br /&gt;
** All rights reserved.&lt;br /&gt;
** Contact: Nokia Corporation (qt-info@nokia.com)&lt;br /&gt;
**&lt;br /&gt;
** This file is part of the examples of the Qt Toolkit.&lt;br /&gt;
**&lt;br /&gt;
** $QT_BEGIN_LICENSE:LGPL$&lt;br /&gt;
** Commercial Usage&lt;br /&gt;
** Licensees holding valid Qt Commercial licenses may use this file in&lt;br /&gt;
** accordance with the Qt Commercial License Agreement provided with the&lt;br /&gt;
** Software or, alternatively, in accordance with the terms contained in&lt;br /&gt;
** a written agreement between you and Nokia.&lt;br /&gt;
**&lt;br /&gt;
** GNU Lesser General Public License Usage&lt;br /&gt;
** Alternatively, this file may be used under the terms of the GNU Lesser&lt;br /&gt;
** General Public License version 2.1 as published by the Free Software&lt;br /&gt;
** Foundation and appearing in the file LICENSE.LGPL included in the&lt;br /&gt;
** packaging of this file.  Please review the following information to&lt;br /&gt;
** ensure the GNU Lesser General Public License version 2.1 requirements&lt;br /&gt;
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.&lt;br /&gt;
**&lt;br /&gt;
** In addition, as a special exception, Nokia gives you certain additional&lt;br /&gt;
** rights.  These rights are described in the Nokia Qt LGPL Exception&lt;br /&gt;
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.&lt;br /&gt;
**&lt;br /&gt;
** GNU General Public License Usage&lt;br /&gt;
** Alternatively, this file may be used under the terms of the GNU&lt;br /&gt;
** General Public License version 3.0 as published by the Free Software&lt;br /&gt;
** Foundation and appearing in the file LICENSE.GPL included in the&lt;br /&gt;
** packaging of this file.  Please review the following information to&lt;br /&gt;
** ensure the GNU General Public License version 3.0 requirements will be&lt;br /&gt;
** met: http://www.gnu.org/copyleft/gpl.html.&lt;br /&gt;
**&lt;br /&gt;
** If you have questions regarding the use of this file, please contact&lt;br /&gt;
** Nokia at qt-info@nokia.com.&lt;br /&gt;
** $QT_END_LICENSE$&lt;br /&gt;
**&lt;br /&gt;
****************************************************************************/&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
QT_BEGIN_NAMESPACE&lt;br /&gt;
class QAction;&lt;br /&gt;
class QListWidget;&lt;br /&gt;
class QMenu;&lt;br /&gt;
class QTextEdit;&lt;br /&gt;
QT_END_NAMESPACE&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
public:&lt;br /&gt;
    MainWindow();&lt;br /&gt;
private slots:&lt;br /&gt;
    void newLetter();&lt;br /&gt;
    void save();&lt;br /&gt;
    void print();&lt;br /&gt;
    void undo();&lt;br /&gt;
    void about();&lt;br /&gt;
    void insertCustomer(const QString &amp;amp;customer);&lt;br /&gt;
    void addParagraph(const QString &amp;amp;paragraph);&lt;br /&gt;
private:&lt;br /&gt;
    void createActions();&lt;br /&gt;
    void createMenus();&lt;br /&gt;
    void createToolBars();&lt;br /&gt;
    void createStatusBar();&lt;br /&gt;
    void createDockWindows();&lt;br /&gt;
    QTextEdit *textEdit;&lt;br /&gt;
    QListWidget *customerList;&lt;br /&gt;
    QListWidget *paragraphsList;&lt;br /&gt;
    QMenu *fileMenu;&lt;br /&gt;
    QMenu *editMenu;&lt;br /&gt;
    QMenu *viewMenu;&lt;br /&gt;
    QMenu *helpMenu;&lt;br /&gt;
    QToolBar *fileToolBar;&lt;br /&gt;
    QToolBar *editToolBar;&lt;br /&gt;
    QAction *newLetterAct;&lt;br /&gt;
    QAction *saveAct;&lt;br /&gt;
    QAction *printAct;&lt;br /&gt;
    QAction *undoAct;&lt;br /&gt;
    QAction *aboutAct;&lt;br /&gt;
    QAction *aboutQtAct;&lt;br /&gt;
    QAction *quitAct;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow()&lt;br /&gt;
{&lt;br /&gt;
    textEdit = new QTextEdit;&lt;br /&gt;
    setCentralWidget(textEdit);&lt;br /&gt;
    createActions();&lt;br /&gt;
    createMenus();&lt;br /&gt;
    createToolBars();&lt;br /&gt;
    createStatusBar();&lt;br /&gt;
    createDockWindows();&lt;br /&gt;
    setWindowTitle(tr(&amp;quot;Dock Widgets&amp;quot;));&lt;br /&gt;
    newLetter();&lt;br /&gt;
    setUnifiedTitleAndToolBarOnMac(true);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::newLetter()&lt;br /&gt;
{&lt;br /&gt;
    textEdit-&amp;gt;clear();&lt;br /&gt;
    QTextCursor cursor(textEdit-&amp;gt;textCursor());&lt;br /&gt;
    cursor.movePosition(QTextCursor::Start);&lt;br /&gt;
    QTextFrame *topFrame = cursor.currentFrame();&lt;br /&gt;
    QTextFrameFormat topFrameFormat = topFrame-&amp;gt;frameFormat();&lt;br /&gt;
    topFrameFormat.setPadding(16);&lt;br /&gt;
    topFrame-&amp;gt;setFrameFormat(topFrameFormat);&lt;br /&gt;
    QTextCharFormat textFormat;&lt;br /&gt;
    QTextCharFormat boldFormat;&lt;br /&gt;
    boldFormat.setFontWeight(QFont::Bold);&lt;br /&gt;
    QTextCharFormat italicFormat;&lt;br /&gt;
    italicFormat.setFontItalic(true);&lt;br /&gt;
    QTextTableFormat tableFormat;&lt;br /&gt;
    tableFormat.setBorder(1);&lt;br /&gt;
    tableFormat.setCellPadding(16);&lt;br /&gt;
    tableFormat.setAlignment(Qt::AlignRight);&lt;br /&gt;
    cursor.insertTable(1, 1, tableFormat);&lt;br /&gt;
    cursor.insertText(&amp;quot;The Firm&amp;quot;, boldFormat);&lt;br /&gt;
    cursor.insertBlock();&lt;br /&gt;
    cursor.insertText(&amp;quot;321 City Street&amp;quot;, textFormat);&lt;br /&gt;
    cursor.insertBlock();&lt;br /&gt;
    cursor.insertText(&amp;quot;Industry Park&amp;quot;);&lt;br /&gt;
    cursor.insertBlock();&lt;br /&gt;
    cursor.insertText(&amp;quot;Some Country&amp;quot;);&lt;br /&gt;
    cursor.setPosition(topFrame-&amp;gt;lastPosition());&lt;br /&gt;
    cursor.insertText(QDate::currentDate().toString(&amp;quot;d MMMM yyyy&amp;quot;), textFormat);&lt;br /&gt;
    cursor.insertBlock();&lt;br /&gt;
    cursor.insertBlock();&lt;br /&gt;
    cursor.insertText(&amp;quot;Dear &amp;quot;, textFormat);&lt;br /&gt;
    cursor.insertText(&amp;quot;NAME&amp;quot;, italicFormat);&lt;br /&gt;
    cursor.insertText(&amp;quot;,&amp;quot;, textFormat);&lt;br /&gt;
    for (int i = 0; i &amp;lt; 3; ++i)&lt;br /&gt;
        cursor.insertBlock();&lt;br /&gt;
    cursor.insertText(tr(&amp;quot;Yours sincerely,&amp;quot;), textFormat);&lt;br /&gt;
    for (int i = 0; i &amp;lt; 3; ++i)&lt;br /&gt;
        cursor.insertBlock();&lt;br /&gt;
    cursor.insertText(&amp;quot;The Boss&amp;quot;, textFormat);&lt;br /&gt;
    cursor.insertBlock();&lt;br /&gt;
    cursor.insertText(&amp;quot;ADDRESS&amp;quot;, italicFormat);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::print()&lt;br /&gt;
{&lt;br /&gt;
#ifndef QT_NO_PRINTDIALOG&lt;br /&gt;
    QTextDocument *document = textEdit-&amp;gt;document();&lt;br /&gt;
    QPrinter printer;&lt;br /&gt;
    QPrintDialog *dlg = new QPrintDialog(&amp;amp;printer, this);&lt;br /&gt;
    if (dlg-&amp;gt;exec() != QDialog::Accepted)&lt;br /&gt;
        return;&lt;br /&gt;
    document-&amp;gt;print(&amp;amp;printer);&lt;br /&gt;
    statusBar()-&amp;gt;showMessage(tr(&amp;quot;Ready&amp;quot;), 2000);&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::save()&lt;br /&gt;
{&lt;br /&gt;
    QString fileName = QFileDialog::getSaveFileName(this,&lt;br /&gt;
                        tr(&amp;quot;Choose a file name&amp;quot;), &amp;quot;.&amp;quot;,&lt;br /&gt;
                        tr(&amp;quot;HTML (*.html *.htm)&amp;quot;));&lt;br /&gt;
    if (fileName.isEmpty())&lt;br /&gt;
        return;&lt;br /&gt;
    QFile file(fileName);&lt;br /&gt;
    if (!file.open(QFile::WriteOnly | QFile::Text)) {&lt;br /&gt;
        QMessageBox::warning(this, tr(&amp;quot;Dock Widgets&amp;quot;),&lt;br /&gt;
                             tr(&amp;quot;Cannot write file %1:\n%2.&amp;quot;)&lt;br /&gt;
                             .arg(fileName)&lt;br /&gt;
                             .arg(file.errorString()));&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    QTextStream out(&amp;amp;file);&lt;br /&gt;
    QApplication::setOverrideCursor(Qt::WaitCursor);&lt;br /&gt;
    out &amp;lt;&amp;lt; textEdit-&amp;gt;toHtml();&lt;br /&gt;
    QApplication::restoreOverrideCursor();&lt;br /&gt;
    statusBar()-&amp;gt;showMessage(tr(&amp;quot;Saved &amp;quot;%1&amp;quot;&amp;quot;).arg(fileName), 2000);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::undo()&lt;br /&gt;
{&lt;br /&gt;
    QTextDocument *document = textEdit-&amp;gt;document();&lt;br /&gt;
    document-&amp;gt;undo();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::insertCustomer(const QString &amp;amp;customer)&lt;br /&gt;
{&lt;br /&gt;
    if (customer.isEmpty())&lt;br /&gt;
        return;&lt;br /&gt;
    QStringList customerList = customer.split(&amp;quot;, &amp;quot;);&lt;br /&gt;
    QTextDocument *document = textEdit-&amp;gt;document();&lt;br /&gt;
    QTextCursor cursor = document-&amp;gt;find(&amp;quot;NAME&amp;quot;);&lt;br /&gt;
    if (!cursor.isNull()) {&lt;br /&gt;
        cursor.beginEditBlock();&lt;br /&gt;
        cursor.insertText(customerList.at(0));&lt;br /&gt;
        QTextCursor oldcursor = cursor;&lt;br /&gt;
        cursor = document-&amp;gt;find(&amp;quot;ADDRESS&amp;quot;);&lt;br /&gt;
        if (!cursor.isNull()) {&lt;br /&gt;
            for (int i = 1; i &amp;lt; customerList.size(); ++i) {&lt;br /&gt;
                cursor.insertBlock();&lt;br /&gt;
                cursor.insertText(customerList.at(i));&lt;br /&gt;
            }&lt;br /&gt;
            cursor.endEditBlock();&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
            oldcursor.endEditBlock();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::addParagraph(const QString &amp;amp;paragraph)&lt;br /&gt;
{&lt;br /&gt;
    if (paragraph.isEmpty())&lt;br /&gt;
        return;&lt;br /&gt;
    QTextDocument *document = textEdit-&amp;gt;document();&lt;br /&gt;
    QTextCursor cursor = document-&amp;gt;find(tr(&amp;quot;Yours sincerely,&amp;quot;));&lt;br /&gt;
    if (cursor.isNull())&lt;br /&gt;
        return;&lt;br /&gt;
    cursor.beginEditBlock();&lt;br /&gt;
    cursor.movePosition(QTextCursor::PreviousBlock, QTextCursor::MoveAnchor, 2);&lt;br /&gt;
    cursor.insertBlock();&lt;br /&gt;
    cursor.insertText(paragraph);&lt;br /&gt;
    cursor.insertBlock();&lt;br /&gt;
    cursor.endEditBlock();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::about()&lt;br /&gt;
{&lt;br /&gt;
   QMessageBox::about(this, tr(&amp;quot;About Dock Widgets&amp;quot;),&lt;br /&gt;
            tr(&amp;quot;The &amp;lt;b&amp;gt;Dock Widgets&amp;lt;/b&amp;gt; example demonstrates how to &amp;quot;&lt;br /&gt;
               &amp;quot;use Qt&amp;quot;s dock widgets. You can enter your own text, &amp;quot;&lt;br /&gt;
               &amp;quot;click a customer to add a customer name and &amp;quot;&lt;br /&gt;
               &amp;quot;address, and click standard paragraphs to add them.&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
void MainWindow::createActions()&lt;br /&gt;
{&lt;br /&gt;
    newLetterAct = new QAction(QIcon(&amp;quot;:/images/new.png&amp;quot;), tr(&amp;quot;&amp;amp;New Letter&amp;quot;),&lt;br /&gt;
                               this);&lt;br /&gt;
    newLetterAct-&amp;gt;setShortcuts(QKeySequence::New);&lt;br /&gt;
    newLetterAct-&amp;gt;setStatusTip(tr(&amp;quot;Create a new form letter&amp;quot;));&lt;br /&gt;
    connect(newLetterAct, SIGNAL(triggered()), this, SLOT(newLetter()));&lt;br /&gt;
    saveAct = new QAction(QIcon(&amp;quot;:/images/save.png&amp;quot;), tr(&amp;quot;&amp;amp;Save...&amp;quot;), this);&lt;br /&gt;
    saveAct-&amp;gt;setShortcuts(QKeySequence::Save);&lt;br /&gt;
    saveAct-&amp;gt;setStatusTip(tr(&amp;quot;Save the current form letter&amp;quot;));&lt;br /&gt;
    connect(saveAct, SIGNAL(triggered()), this, SLOT(save()));&lt;br /&gt;
    printAct = new QAction(QIcon(&amp;quot;:/images/print.png&amp;quot;), tr(&amp;quot;&amp;amp;Print...&amp;quot;), this);&lt;br /&gt;
    printAct-&amp;gt;setShortcuts(QKeySequence::Print);&lt;br /&gt;
    printAct-&amp;gt;setStatusTip(tr(&amp;quot;Print the current form letter&amp;quot;));&lt;br /&gt;
    connect(printAct, SIGNAL(triggered()), this, SLOT(print()));&lt;br /&gt;
    undoAct = new QAction(QIcon(&amp;quot;:/images/undo.png&amp;quot;), tr(&amp;quot;&amp;amp;Undo&amp;quot;), this);&lt;br /&gt;
    undoAct-&amp;gt;setShortcuts(QKeySequence::Undo);&lt;br /&gt;
    undoAct-&amp;gt;setStatusTip(tr(&amp;quot;Undo the last editing action&amp;quot;));&lt;br /&gt;
    connect(undoAct, SIGNAL(triggered()), this, SLOT(undo()));&lt;br /&gt;
    quitAct = new QAction(tr(&amp;quot;&amp;amp;Quit&amp;quot;), this);&lt;br /&gt;
    quitAct-&amp;gt;setShortcut(tr(&amp;quot;Ctrl+Q&amp;quot;));&lt;br /&gt;
    quitAct-&amp;gt;setStatusTip(tr(&amp;quot;Quit the application&amp;quot;));&lt;br /&gt;
    connect(quitAct, SIGNAL(triggered()), this, SLOT(close()));&lt;br /&gt;
    aboutAct = new QAction(tr(&amp;quot;&amp;amp;About&amp;quot;), this);&lt;br /&gt;
    aboutAct-&amp;gt;setStatusTip(tr(&amp;quot;Show the application&amp;quot;s About box&amp;quot;));&lt;br /&gt;
    connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));&lt;br /&gt;
    aboutQtAct = new QAction(tr(&amp;quot;About &amp;amp;Qt&amp;quot;), this);&lt;br /&gt;
    aboutQtAct-&amp;gt;setStatusTip(tr(&amp;quot;Show the Qt library&amp;quot;s About box&amp;quot;));&lt;br /&gt;
    connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));&lt;br /&gt;
}&lt;br /&gt;
void MainWindow::createMenus()&lt;br /&gt;
{&lt;br /&gt;
    fileMenu = menuBar()-&amp;gt;addMenu(tr(&amp;quot;&amp;amp;File&amp;quot;));&lt;br /&gt;
    fileMenu-&amp;gt;addAction(newLetterAct);&lt;br /&gt;
    fileMenu-&amp;gt;addAction(saveAct);&lt;br /&gt;
    fileMenu-&amp;gt;addAction(printAct);&lt;br /&gt;
    fileMenu-&amp;gt;addSeparator();&lt;br /&gt;
    fileMenu-&amp;gt;addAction(quitAct);&lt;br /&gt;
    editMenu = menuBar()-&amp;gt;addMenu(tr(&amp;quot;&amp;amp;Edit&amp;quot;));&lt;br /&gt;
    editMenu-&amp;gt;addAction(undoAct);&lt;br /&gt;
    viewMenu = menuBar()-&amp;gt;addMenu(tr(&amp;quot;&amp;amp;View&amp;quot;));&lt;br /&gt;
    menuBar()-&amp;gt;addSeparator();&lt;br /&gt;
    helpMenu = menuBar()-&amp;gt;addMenu(tr(&amp;quot;&amp;amp;Help&amp;quot;));&lt;br /&gt;
    helpMenu-&amp;gt;addAction(aboutAct);&lt;br /&gt;
    helpMenu-&amp;gt;addAction(aboutQtAct);&lt;br /&gt;
}&lt;br /&gt;
void MainWindow::createToolBars()&lt;br /&gt;
{&lt;br /&gt;
    fileToolBar = addToolBar(tr(&amp;quot;File&amp;quot;));&lt;br /&gt;
    fileToolBar-&amp;gt;addAction(newLetterAct);&lt;br /&gt;
    fileToolBar-&amp;gt;addAction(saveAct);&lt;br /&gt;
    fileToolBar-&amp;gt;addAction(printAct);&lt;br /&gt;
    editToolBar = addToolBar(tr(&amp;quot;Edit&amp;quot;));&lt;br /&gt;
    editToolBar-&amp;gt;addAction(undoAct);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::createStatusBar()&lt;br /&gt;
{&lt;br /&gt;
    statusBar()-&amp;gt;showMessage(tr(&amp;quot;Ready&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::createDockWindows()&lt;br /&gt;
{&lt;br /&gt;
    QDockWidget *dock = new QDockWidget(tr(&amp;quot;Customers&amp;quot;), this);&lt;br /&gt;
    dock-&amp;gt;setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);&lt;br /&gt;
    customerList = new QListWidget(dock);&lt;br /&gt;
    customerList-&amp;gt;addItems(QStringList()&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;John Doe, Harmony Enterprises, 12 Lakeside, Ambleton&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;Jane Doe, Memorabilia, 23 Watersedge, Beaton&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;Tammy Shea, Tiblanka, 38 Sea Views, Carlton&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;Sally Hobart, Tiroli Tea, 67 Long River, Fedula&amp;quot;);&lt;br /&gt;
    dock-&amp;gt;setWidget(customerList);&lt;br /&gt;
    addDockWidget(Qt::RightDockWidgetArea, dock);&lt;br /&gt;
    viewMenu-&amp;gt;addAction(dock-&amp;gt;toggleViewAction());&lt;br /&gt;
    dock = new QDockWidget(tr(&amp;quot;Paragraphs&amp;quot;), this);&lt;br /&gt;
    paragraphsList = new QListWidget(dock);&lt;br /&gt;
    paragraphsList-&amp;gt;addItems(QStringList()&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;Thank you for your payment which we have received today.&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;Your order has been dispatched and should be with you &amp;quot;&lt;br /&gt;
               &amp;quot;within 28 days.&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;We have dispatched those items that were in stock. The &amp;quot;&lt;br /&gt;
               &amp;quot;rest of your order will be dispatched once all the &amp;quot;&lt;br /&gt;
               &amp;quot;remaining items have arrived at our warehouse. No &amp;quot;&lt;br /&gt;
               &amp;quot;additional shipping charges will be made.&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;You made a small overpayment (less than $5) which we &amp;quot;&lt;br /&gt;
               &amp;quot;will keep on account for you, or return at your request.&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;You made a small underpayment (less than $1), but we have &amp;quot;&lt;br /&gt;
               &amp;quot;sent your order anyway. We&amp;quot;ll add this underpayment to &amp;quot;&lt;br /&gt;
               &amp;quot;your next bill.&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;Unfortunately you did not send enough money. Please remit &amp;quot;&lt;br /&gt;
               &amp;quot;an additional $. Your order will be dispatched as soon as &amp;quot;&lt;br /&gt;
               &amp;quot;the complete amount has been received.&amp;quot;&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot;You made an overpayment (more than $5). Do you wish to &amp;quot;&lt;br /&gt;
               &amp;quot;buy more items, or should we return the excess to you?&amp;quot;);&lt;br /&gt;
    dock-&amp;gt;setWidget(paragraphsList);&lt;br /&gt;
    addDockWidget(Qt::RightDockWidgetArea, dock);&lt;br /&gt;
    viewMenu-&amp;gt;addAction(dock-&amp;gt;toggleViewAction());&lt;br /&gt;
    connect(customerList, SIGNAL(currentTextChanged(const QString &amp;amp;)),&lt;br /&gt;
            this, SLOT(insertCustomer(const QString &amp;amp;)));&lt;br /&gt;
    connect(paragraphsList, SIGNAL(currentTextChanged(const QString &amp;amp;)),&lt;br /&gt;
            this, SLOT(addParagraph(const QString &amp;amp;)));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication app(argc, argv);&lt;br /&gt;
    Q_INIT_RESOURCE(dockwidgets);&lt;br /&gt;
    MainWindow mainWin;&lt;br /&gt;
    mainWin.show();&lt;br /&gt;
    return app.exec();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using QDockWidget==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
/****************************************************************************&lt;br /&gt;
**&lt;br /&gt;
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br /&gt;
** All rights reserved.&lt;br /&gt;
** Contact: Nokia Corporation (qt-info@nokia.com)&lt;br /&gt;
**&lt;br /&gt;
** This file is part of the documentation of the Qt Toolkit.&lt;br /&gt;
**&lt;br /&gt;
** $QT_BEGIN_LICENSE:LGPL$&lt;br /&gt;
** Commercial Usage&lt;br /&gt;
** Licensees holding valid Qt Commercial licenses may use this file in&lt;br /&gt;
** accordance with the Qt Commercial License Agreement provided with the&lt;br /&gt;
** Software or, alternatively, in accordance with the terms contained in&lt;br /&gt;
** a written agreement between you and Nokia.&lt;br /&gt;
**&lt;br /&gt;
** GNU Lesser General Public License Usage&lt;br /&gt;
** Alternatively, this file may be used under the terms of the GNU Lesser&lt;br /&gt;
** General Public License version 2.1 as published by the Free Software&lt;br /&gt;
** Foundation and appearing in the file LICENSE.LGPL included in the&lt;br /&gt;
** packaging of this file.  Please review the following information to&lt;br /&gt;
** ensure the GNU Lesser General Public License version 2.1 requirements&lt;br /&gt;
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.&lt;br /&gt;
**&lt;br /&gt;
** In addition, as a special exception, Nokia gives you certain additional&lt;br /&gt;
** rights.  These rights are described in the Nokia Qt LGPL Exception&lt;br /&gt;
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.&lt;br /&gt;
**&lt;br /&gt;
** GNU General Public License Usage&lt;br /&gt;
** Alternatively, this file may be used under the terms of the GNU&lt;br /&gt;
** General Public License version 3.0 as published by the Free Software&lt;br /&gt;
** Foundation and appearing in the file LICENSE.GPL included in the&lt;br /&gt;
** packaging of this file.  Please review the following information to&lt;br /&gt;
** ensure the GNU General Public License version 3.0 requirements will be&lt;br /&gt;
** met: http://www.gnu.org/copyleft/gpl.html.&lt;br /&gt;
**&lt;br /&gt;
** If you have questions regarding the use of this file, please contact&lt;br /&gt;
** Nokia at qt-info@nokia.com.&lt;br /&gt;
** $QT_END_LICENSE$&lt;br /&gt;
**&lt;br /&gt;
****************************************************************************/&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
class QDockWidget;&lt;br /&gt;
class QListWidget;&lt;br /&gt;
class QListWidgetItem;&lt;br /&gt;
class QTextBrowser;&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
public:&lt;br /&gt;
    MainWindow(QWidget *parent = 0);&lt;br /&gt;
private slots:&lt;br /&gt;
    void updateText(QListWidgetItem *item);&lt;br /&gt;
private:&lt;br /&gt;
    void setupContents();&lt;br /&gt;
    void setupDockWindow();&lt;br /&gt;
    void setupMenus();&lt;br /&gt;
    QDockWidget *contentsWindow;&lt;br /&gt;
    QListWidget *headingList;&lt;br /&gt;
    QTextBrowser *textBrowser;&lt;br /&gt;
};&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent)&lt;br /&gt;
    : QMainWindow(parent)&lt;br /&gt;
{&lt;br /&gt;
    setWindowTitle(&amp;quot;Dock Widgets&amp;quot;);&lt;br /&gt;
    setupDockWindow();&lt;br /&gt;
    setupContents();&lt;br /&gt;
    setupMenus();&lt;br /&gt;
    textBrowser = new QTextBrowser(this);&lt;br /&gt;
    connect(headingList, SIGNAL(itemClicked(QListWidgetItem *)),&lt;br /&gt;
            this, SLOT(updateText(QListWidgetItem *)));&lt;br /&gt;
    updateText(headingList-&amp;gt;item(0));&lt;br /&gt;
    headingList-&amp;gt;setCurrentRow(0);&lt;br /&gt;
    setCentralWidget(textBrowser);&lt;br /&gt;
}&lt;br /&gt;
void MainWindow::setupContents()&lt;br /&gt;
{&lt;br /&gt;
    QFile titlesFile(&amp;quot;:/Resources/titles.txt&amp;quot;);&lt;br /&gt;
    titlesFile.open(QFile::ReadOnly);&lt;br /&gt;
    int chapter = 0;&lt;br /&gt;
    do {&lt;br /&gt;
        QString line = titlesFile.readLine().trimmed();&lt;br /&gt;
        QStringList parts = line.split(&amp;quot;\t&amp;quot;, QString::SkipEmptyParts);&lt;br /&gt;
        if (parts.size() != 2)&lt;br /&gt;
            break;&lt;br /&gt;
        QString chapterTitle = parts[0];&lt;br /&gt;
        QString fileName = parts[1];&lt;br /&gt;
        QFile chapterFile(fileName);&lt;br /&gt;
        chapterFile.open(QFile::ReadOnly);&lt;br /&gt;
        QListWidgetItem *item = new QListWidgetItem(chapterTitle, headingList);&lt;br /&gt;
        item-&amp;gt;setData(Qt::DisplayRole, chapterTitle);&lt;br /&gt;
        item-&amp;gt;setData(Qt::UserRole, chapterFile.readAll());&lt;br /&gt;
        item-&amp;gt;setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);&lt;br /&gt;
        chapterFile.close();&lt;br /&gt;
        chapter++;&lt;br /&gt;
    } while (titlesFile.isOpen());&lt;br /&gt;
    titlesFile.close();&lt;br /&gt;
}&lt;br /&gt;
void MainWindow::setupDockWindow()&lt;br /&gt;
{&lt;br /&gt;
    contentsWindow = new QDockWidget(tr(&amp;quot;Table of Contents&amp;quot;), this);&lt;br /&gt;
    contentsWindow-&amp;gt;setAllowedAreas(Qt::LeftDockWidgetArea&lt;br /&gt;
                                  | Qt::RightDockWidgetArea);&lt;br /&gt;
    addDockWidget(Qt::LeftDockWidgetArea, contentsWindow);&lt;br /&gt;
    headingList = new QListWidget(contentsWindow);&lt;br /&gt;
    contentsWindow-&amp;gt;setWidget(headingList);&lt;br /&gt;
}&lt;br /&gt;
void MainWindow::setupMenus()&lt;br /&gt;
{&lt;br /&gt;
    QAction *exitAct = new QAction(tr(&amp;quot;E&amp;amp;xit&amp;quot;), this);&lt;br /&gt;
    exitAct-&amp;gt;setShortcut(tr(&amp;quot;Ctrl+Q&amp;quot;));&lt;br /&gt;
    exitAct-&amp;gt;setStatusTip(tr(&amp;quot;Exit the application&amp;quot;));&lt;br /&gt;
    connect(exitAct, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));&lt;br /&gt;
    QMenu *fileMenu = menuBar()-&amp;gt;addMenu(tr(&amp;quot;&amp;amp;File&amp;quot;));&lt;br /&gt;
    fileMenu-&amp;gt;addAction(exitAct);&lt;br /&gt;
}&lt;br /&gt;
void MainWindow::updateText(QListWidgetItem *item)&lt;br /&gt;
{&lt;br /&gt;
    QString text = item-&amp;gt;data(Qt::UserRole).toString();&lt;br /&gt;
    textBrowser-&amp;gt;setHtml(text);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication app(argc, argv);&lt;br /&gt;
    QMainWindow *window = new MainWindow;&lt;br /&gt;
    window-&amp;gt;show();&lt;br /&gt;
    window-&amp;gt;resize(640, 480);&lt;br /&gt;
    return app.exec();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>