diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | doc/src/tutorials/modelview.qdoc | 30 | ||||
-rwxr-xr-x | examples/tutorials/modelview/3_changingmodel/mymodel.cpp | 2 | ||||
-rwxr-xr-x | examples/tutorials/modelview/5_edit/mainwindow.h | 6 | ||||
-rwxr-xr-x | examples/tutorials/modelview/6_treeview/mainwindow.h | 8 | ||||
-rwxr-xr-x | examples/tutorials/modelview/7_selections/mainwindow.h | 8 |
6 files changed, 37 insertions, 18 deletions
@@ -6,6 +6,7 @@ examples/*/*/* !examples/*/*/README examples/*/*/*[.]app !examples/declarative/* +!examples/tutorials/* !examples/ja_JP/*/* demos/*/* !demos/spectrum/* diff --git a/doc/src/tutorials/modelview.qdoc b/doc/src/tutorials/modelview.qdoc index 65f6674..e47fe83 100644 --- a/doc/src/tutorials/modelview.qdoc +++ b/doc/src/tutorials/modelview.qdoc @@ -30,7 +30,7 @@ \startpage {index.html}{Qt Reference Documentation} - \title Model/View Contents + \title Model/View Tutorial \brief An introduction to ModelView programming Every UI developer should know about ModelView programming and the goal of @@ -103,13 +103,13 @@ Let's have a closer look at a standard table widget. A table widget is a 2D array of the data elements that the user can change. The table widget can be integrated into a program flow by reading and writing the data elements that - the table widget provides. This method is very intuitive and useful in many - applications. - - Displaying and editing a database table with a standard table widget can be - problematic. Two copies of the data have to be coordinated: one outside the + the table widget provides. + + This method is very intuitive and useful in many applications, but displaying + and editing a database table with a standard table widget can be problematic. + Two copies of the data have to be coordinated: one outside the widget; one inside the widget. The developer is responsible for - synchronizing both versions. The tight coupling of presentation and data + synchronizing both versions. Besides this, the tight coupling of presentation and data makes it harder to write unit tests. \section2 1.2 Model/View to the Rescue @@ -184,7 +184,13 @@ \section1 2. A Simple Model/View Application - If you want to develop a model/view application, where should you start? We recommend starting with a simple example and extending it step-by-step. This makes understanding the architecture a lot easier. Trying to understand the model/view architecture in detail before invoking the IDE has proven to be less convenient for many developers. It is substantially easier to start with a simple model/view application that has demo data. Give it a try! Simply replace the data in the examples below with your own. + If you want to develop a model/view application, where should you start? + We recommend starting with a simple example and extending it step-by-step. + This makes understanding the architecture a lot easier. Trying to understand + the model/view architecture in detail before invoking the IDE has proven + to be less convenient for many developers. It is substantially easier to + start with a simple model/view application that has demo data. Give it a + try! Simply replace the data in the examples below with your own. Below are 7 very simple and independent applications that show different sides of model/view programming. The source code can be found inside the @@ -596,20 +602,22 @@ \list 1 \o \bold{C++ GUI Programming with Qt 4} / Jasmin Blanchette, Mark Summerfield, \e{Prentice Hall, 2nd edition}, ISBN 0-13-235416-0. Also available in - German: C++ GUI Programmierung mit Qt 4: Die offizielle Einführung, + German: \bold{C++ GUI Programmierung mit Qt 4: Die offizielle Einführung}, \e{Addison-Wesley}, ISBN 3-827327-29-6 \o \bold{The Book of Qt4, The Art of Building Qt Applications} / Daniel Molkentin, \e{Open Source Press}, ISBN 1-59327-147-6. Translated from \bold{Qt 4, Einführung in die Applikationsentwicklung}, \e{Open Source Press}, ISBN 3-937514-12-0. \o \bold{Foundations of Qt Development} / Johan Thelin, \e{Apress}, ISBN 1-59059-831-8. + \o \bold{Advanced Qt Programming} / Mark Summerfield, \e{Prentice Hall}, ISBN 0-321-63590-6. + This book covers Model/View programming on more than 150 pages. \endlist More information about these books is available on the \l{Books about Qt Programming}{Qt Web site}. - The following list provides an overview of example programs contained in the - books above. Some of them make very good templates for developing similar + The following list provides an overview of example programs contained in the first three + books listed above. Some of them make very good templates for developing similar applications. \table diff --git a/examples/tutorials/modelview/3_changingmodel/mymodel.cpp b/examples/tutorials/modelview/3_changingmodel/mymodel.cpp index 42915b0..d82f00d 100755 --- a/examples/tutorials/modelview/3_changingmodel/mymodel.cpp +++ b/examples/tutorials/modelview/3_changingmodel/mymodel.cpp @@ -38,8 +38,6 @@ ** ****************************************************************************/ -#include <QTimer> -#include <QTime> #include <QBrush> #include "mymodel.h" diff --git a/examples/tutorials/modelview/5_edit/mainwindow.h b/examples/tutorials/modelview/5_edit/mainwindow.h index ac5b77b..41b15d1 100755 --- a/examples/tutorials/modelview/5_edit/mainwindow.h +++ b/examples/tutorials/modelview/5_edit/mainwindow.h @@ -42,7 +42,11 @@ #define MAINWINDOW_H #include <QtGui/QMainWindow> -#include <QtGui/QTableView> + +QT_BEGIN_NAMESPACE // QT_BEGIN_NAMESPACE / QT_END_NAMESPACE are not needed in Qt user code +class QTableView; //forward declaration +QT_END_NAMESPACE + class MainWindow : public QMainWindow { diff --git a/examples/tutorials/modelview/6_treeview/mainwindow.h b/examples/tutorials/modelview/6_treeview/mainwindow.h index 4c4ddb0..16d3140 100755 --- a/examples/tutorials/modelview/6_treeview/mainwindow.h +++ b/examples/tutorials/modelview/6_treeview/mainwindow.h @@ -42,8 +42,12 @@ #define MAINWINDOW_H #include <QtGui/QMainWindow> -#include <QtGui/QTreeView> -#include <QtGui/QStandardItemModel> + +QT_BEGIN_NAMESPACE // QT_BEGIN_NAMESPACE / QT_END_NAMESPACE are not needed in Qt user code +class QTreeView; //forward declarations +class QStandardItemModel; +class QStandardItem; +QT_END_NAMESPACE class MainWindow : public QMainWindow diff --git a/examples/tutorials/modelview/7_selections/mainwindow.h b/examples/tutorials/modelview/7_selections/mainwindow.h index a8f8488..0d2dd0e 100755 --- a/examples/tutorials/modelview/7_selections/mainwindow.h +++ b/examples/tutorials/modelview/7_selections/mainwindow.h @@ -42,8 +42,12 @@ #define MAINWINDOW_H #include <QtGui/QMainWindow> -#include <QtGui/QTreeView> -#include <QtGui/QStandardItemModel> + +QT_BEGIN_NAMESPACE // QT_BEGIN_NAMESPACE / QT_END_NAMESPACE are not needed in Qt user code +class QTreeView; //forward declarations +class QStandardItemModel; +class QItemSelection; +QT_END_NAMESPACE class MainWindow : public QMainWindow |